ошибка xo lint: «документ» не определен

#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