Глобальные переменные в Javascript и ESLint


102

У меня есть несколько файлов javascript, и я определил некоторую глобальную переменную в файле, который загружается раньше других. Как следствие, все файлы, загруженные после первого, имеют доступ к глобальной переменной. Однако ESLint показывает глобальную переменную как «не определенную». Я не хочу изменять правила ESLint и хотел бы найти элегантный способ избавиться от этих сообщений об ошибках. Есть подсказка? Спасибо


4
-> eslint.org/docs/user-guide/configuring#specifying-globals . Документация ESLint отличная, IMO, вам стоит взглянуть на нее.
Феликс Клинг

Ответы:


115

Я не думаю, что взлом правил ESLint для каждого файла - хорошая идея.

Вам лучше определить globalsв .eslintrcили package.json.

Для .eslintrc:

"globals": {
    "angular": true
}

Для package.json:

"eslintConfig": {
    "globals": {
        "angular": true
    }
}

PS

Чтение документации - обязательное достоинство для разработчиков

https://eslint.org/docs/user-guide/configuring#specifying-globals


7
Возможно, стоит отметить, что вы установили для глобальной переменной значение, trueесли вы можете присвоить переменную чему-то еще и falseесли ее не следует переназначать.
RedSparr0w

6
Связывание документации - это достоинство, которое очень ценится в ответах на stackoverflow.
Romain G

@RomainG уже есть ссылка ниже;) Но я добавлю еще одну для вас
v-andrew

87

Вы можете добавить глобальные объекты либо в файл, либо в свой config. Если вы не хотите менять свою конфигурацию, вам придется добавлять используемые глобальные переменные в каждый файл.

Чтобы указать глобальные объекты с помощью комментария внутри файла JavaScript, используйте следующий формат:

/* global var1, var2 */

Это определяет две глобальные переменные var1и var2. Если вы хотите дополнительно указать, что эти глобальные переменные никогда не должны записываться (только читать), вы можете установить для каждой из них флаг false:

/* global var1:false, var2:false */

http://eslint.org/docs/2.0.0/user-guide/configuring#specifying-globals

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.