xo lint错误:未定义`document`

时间:2016-10-04 06:58:22

标签: javascript eslint

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

我正在尝试同时使用xo,Babel和React,但是当我尝试lint我的代码时,我一直收到错误: 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
  } 
}

2 个答案:

答案 0 :(得分:1)

每次使用全局变量时,指定诸如/** global document **/之类的lint选项并编辑配置文件很麻烦。

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

xo --env=browser [<file|glob> ...]

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

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

xo --env=browser --env=node [<file|glob> ...]

答案 1 :(得分:0)

您必须在ESLint中定义全局变量。有两种方法可以实现这一点,首先是作为代码中的注释:

/* global document */

或者您可以在配置文件中配置如下:

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

请参阅ESLint docs了解更多