Node.js и eslint расходятся во мнениях относительно строгого использования

ESLint говорит мне, что мне не нужно "use strict" в начале моего файла index.js (это простой сервер, такой как 6-строчный на https://nodejs.org/en/about/). Судя по всему, все модули узла уже находятся в строгом режиме. Имеет смысл.

Однако запуск node index.js приводит к ошибке «SyntaxError: [let] не поддерживается за пределами строгого режима». работает с "избыточной" прагмой "use strict".

Почему несоответствие? Разве узел не должен знать, что этот модуль узла действительно является строгим по умолчанию? Может ли это быть связано с какой-то простой неправильной настройкой узла, ESLint или моей IDE?


person ivanjonas    schedule 25.09.2015    source источник
comment
Вы можете запустить узел с флагом --use-strict   -  person Explosion Pills    schedule 26.09.2015
comment
ESLint неправильный, но настраиваемый: /*eslint strict:0*/.   -  person Amit    schedule 26.09.2015
comment
Вот и все, @ExplosionPills! Спасибо. Почему бы не сделать это ответом и выиграть несколько очков?   -  person ivanjonas    schedule 26.09.2015
comment
@Амит Спасибо, Амит. Работал и для меня!   -  person Dao Lam    schedule 24.05.2016


Ответы (1)


ESLint самостоятельно решает, какие предупреждения или ошибки он считает действительными, а какие недействительными. Вы должны относиться ко всему, что говорит eslint/jslint/jshint, как к рекомендациям поверх всего остального. По словам кого-то где-то их предложения оптимальны и совершенно справедливы.

При этом у вас есть несколько вариантов, чтобы подавить это конкретное предупреждение:

  • Используйте флаги eslint в комментариях в коде
  • Запустите eslint с конфигурацией, чтобы указать этот флаг
  • Используйте флаг --use-strict при запуске node

Конкретная причина того, почему вы получаете это предупреждение, связана с тем фактом, что интерпретатор узла по умолчанию в его нынешнем виде не полностью готов к ES6. Например, в узле 4 вы не можете использовать let вне строгого режима, хотя let является ключевым словом ES6.

person Explosion Pills    schedule 26.09.2015