#javascript #eslint
#javascript #eslint
Вопрос:
Я долгое время пользовался стандартом, и теперь, когда я работаю над новым проектом, меня попросили начать писать точки с запятой.
Я пытаюсь использовать как xo, Babel, так и React, но я продолжаю получать сообщение об ошибке при попытке изменить свой код: document is not defined. no-undef
Я попытался добавить env
параметр в xo
поле в моем файле package.json, но безуспешно.
Моя xo
конфигурация:
"xo": {
"esnext": true,
"extends": "xo-react",
"space": true,
"rules": {
"react/jsx-space-before-closing": 0
}
}
Ответ №1:
Громоздко указывать параметры компоновки, такие как /** global document **/
и редактировать файл конфигурации, каждый раз, когда вы используете глобальный.
Эта ошибка может быть устранена с помощью --env=browser
опции:
xo --env=browser [<file|glob> ...]
Примечание: та же проблема возникает с Node.js , где линтер будет жаловаться, что require
и друзья не определены. В этом случае переключатель должен быть изменен на --env=node
.
Однако по умолчанию в XO env
используется значение to node
, поэтому в большинстве случаев это не будет проблемой. Вам потребуется несколько сред, если ваш проект содержит как клиентские, так и серверные файлы. в этом случае --env
переключатель может быть установлен несколько раз:
xo --env=browser --env=node [<file|glob> ...]
Комментарии:
1. Также может быть указан в
package.json
:"xo": { "envs": ["browser"] },
Ответ №2:
Вы должны определить глобальные переменные в ESLint. Для этого есть два способа, во-первых, как комментарий в вашем коде:
/* global document */
Или вы можете настроить в файле конфигурации следующим образом:
{
"globals": {
"var1": true,
"var2": false
}
}
Подробнее см. Документы ESLint