我一直是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
}
}
答案 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了解更多