xo lint 错误:“文档”未定义

Jon*_*yon 8 javascript eslint

我已经是Standard的长期用户,现在我正在开发一个新项目,我被要求开始编写分号。

我尝试同时使用 xo、Babel 和 React,但当我尝试检查代码时不断收到错误: document is not defined. no-undef

我尝试向 package.json 文件中的字段添加一个env选项,但没有成功。xo

我的xo配置:

"xo": {
  "esnext": true,
  "extends": "xo-react",
  "space": true,
  "rules": {
    "react/jsx-space-before-closing": 0
  } 
}
Run Code Online (Sandbox Code Playgroud)

sam*_*ris 6

每次使用全局时指定 linting 选项(例如)/** global document **/并编辑配置文件是很麻烦的。

可以通过使用选项来抑制此错误--env=browser

xo --env=browser [<file|glob> ...]
Run Code Online (Sandbox Code Playgroud)

注意: Node.js 也存在同样的问题,linter 会抱怨require和 朋友没有定义。在这种情况下,开关必须更改为--env=node

但是,XO 默认为envnode因此在大多数情况下这不会成为问题。如果您的项目同时包含客户端和服务器文件,您将需要多个环境。在这种情况下,--env可以多次设置 switch:

xo --env=browser --env=node [<file|glob> ...]
Run Code Online (Sandbox Code Playgroud)

  • 也可以在`package.json`中指定:`"xo": { "envs": ["browser"] },` (2认同)

Sav*_*ore 0

您必须在 ESLint 中定义全局变量。有两种方法可以实现此目的,首先是在代码中添加注释:

/* global document */

或者您可以在配置文件中进行配置,如下所示:

{ "globals": { "var1": true, "var2": false } }

有关更多信息,请参阅ESLint 文档