我正在为全局窗口对象分配一个属性,但是当我运行eslint时,我得到了这个:
“窗口”未定义
以下将窗口定义为不应触发正在测试的规则的代码的全局变量:
valid: [
{
code: "window.alert()",
globals: [ "window" ]
}
]
我尝试将这样的东西添加到package.json文件中,让eslint允许“window”作为全局变量,但我一定做错了。从文档看来,我可能需要在单独的文件中执行类似的操作,但有没有办法在package.json文件中定义一些允许的全局变量?
答案 0 :(得分:260)
内置environment: browser
包含window
:
示例:
"env": {
"browser": true,
"node": true,
"jasmine": true
},
更多信息:http://eslint.org/docs/user-guide/configuring.html#specifying-environments
答案 1 :(得分:91)
我在此页面上找到了它:http://eslint.org/docs/user-guide/configuring
在package.json中,这有效:
"eslintConfig": {
"globals": {
"window": true
}
}
答案 2 :(得分:53)
在项目根目录中添加.eslintrc
。
{
"globals": {
"document": true,
"foo": true,
"window": true
}
}
答案 3 :(得分:39)
您的 .eslintrc.json 应包含以下文字 通过这种方式,ESLint了解您的全局变量。
{
"env": {
"browser": true,
"node": true
}
}
答案 4 :(得分:4)
我知道他并没有要求使用 inline 版本,但是由于该问题的访问量接近10万,而我却在这里寻找它,因此我将其留给下一个版本:
确保ESLint不与--no-inline-config
标志一起运行,并将其写入代码中的任意位置(为清楚起见,将其写在文件顶部):
/* eslint-env browser */
这告诉ESLint您的工作环境是浏览器,因此现在它知道浏览器中的内容并进行相应调整。
environments有很多,您可以同时使用多个(内联,例如/* eslint-env browser, node */
或来自ESLint的配置文件):
环境定义了预定义的全局变量。的 可用的环境是:
browser
-浏览器全局变量。node
-Node.js全局变量和Node.js作用域。commonjs
-CommonJS全局变量和CommonJS作用域(将其用于使用Browserify / WebPack的仅浏览器代码)。shared-node-browser
-节点和浏览器通用的全局变量。[...]
答案 5 :(得分:2)
如果您使用的是 Angular ,可以使用以下方式获取:
"env": {
"browser": true,
"node": true
},
"rules" : {
"angular/window-service": 0
}