Я назначаю свойство глобальному объекту окна, но когда я запускаю eslint, я получаю следующее:
"окно" не определено
Я вижу это здесь, в документах eslint:
следующее определяет окно как глобальную переменную для кода, которая не должна запускать проверяемое правило:
valid: [
{
code: "window.alert()",
globals: [ "window" ]
}
]
Я попытался добавить что-то вроде этого в файл package.json, чтобы eslint разрешил "окно" как глобальную переменную, но я должен делать что-то неправильно. Из документов мне кажется, что мне может понадобиться сделать что-то подобное в отдельном файле, но есть ли способ определить некоторые допустимые глобальные переменные прямо в файле package.json?
Ответ 1
Я нашел его на этой странице: http://eslint.org/docs/user-guide/configuring
В package.json это работает:
"eslintConfig": {
"globals": {
"window": true
}
}
Ответ 2
Существует встроенный environment: browser
, который включает в себя window
.
Пример .eslintrc.json
:
"env": {
"browser": true,
"node": true,
"jasmine": true
},
Дополнительная информация: http://eslint.org/docs/user-guide/configuring.html#specifying-environments
Также см. ответ package.json
от chevin99 ниже.
Ответ 3
Добавьте .eslintrc
в корень проекта.
{
"globals": {
"document": true,
"foo": true,
"window": true
}
}
Ответ 4
Ваш .eslintrc.json должен содержать текст ниже.
Таким образом, ESLint узнает о ваших глобальных переменных.
{
"env": {
"browser": true,
"node": true
}
}
Ответ 5
Я знаю, что он не просит встроенную версию. Но так как этот вопрос имеет почти 100 000 посещений, и я попал сюда в поисках этого, я оставлю его здесь следующему товарищу по кодированию:
Убедитесь, что ESLint не запускается с флагом --no-inline-config
(если это не звучит знакомо, вы, вероятно, хорошо). Затем напишите это в своем коде (для ясности и условности напишите его поверх файла):
/* eslint-env browser */
Это говорит ESLint, что ваша рабочая среда - это браузер, поэтому теперь он знает, что есть в браузере, и соответствующим образом адаптируется.
Существует множество окружений, и вы можете использовать более одного одновременно, например, в строке:
/* eslint-env browser, node */
или в вашем конфигурационном файле ESLint.
Из их документов:
Среда определяет глобальные переменные, которые предопределены. Доступные среды:
-
browser
- глобальные переменные браузера.
node
- глобальные переменные Node.js и область видимости Node.js.
commonjs
- Глобальные переменные CommonJS и область видимости CommonJS (используйте это для кода только для браузера, который использует Browserify/WebPack).
shared-node-browser
- глобальные переменные, общие как для узла, так и для браузера.
[...]
Помимо окружения, вы можете игнорировать практически все, что хотите. Если он предупреждает вас об использовании console.log()
, но, тем не менее, он вам нужен, просто вставьте:
/* eslint-disable no-console */
Вы можете просмотреть список всех правил, включая рекомендуемые правила для лучших практик кодирования.
Ответ 6
Если вы используете Angular, вы можете получить его с помощью:
"env": {
"browser": true,
"node": true
},
"rules" : {
"angular/window-service": 0
}