我给全局窗口对象分配了一个属性,但是当我运行eslint时,我得到了这个:
“window”没有定义
我在eslint文档中看到了这个:
下面将window定义为一个全局变量,用于不触发正在测试的规则的代码:
valid: [
{
code: "window.alert()",
globals: [ "window" ]
}
]
我试过在包中添加这样的东西。json文件有eslint允许“窗口”作为一个全局变量,但我一定是做错了什么。从文档中,似乎我可能需要在一个单独的文件中做这样的事情,但是有一种方法可以在包中定义一些允许的全局变量。json文件吗?
我知道他要求的不是内联版本。但由于这个问题有近10万次访问,我在这里寻找它,我将把它留给下一个程序员同事:
确保ESLint没有带——no-inline-config标志运行(如果这听起来不熟悉,你可能很好)。然后,在你的代码文件中写这个(为了清晰和约定,它写在文件的顶部,但它可以在任何地方工作):
/* eslint-env browser */
这告诉ESLint你的工作环境是一个浏览器,所以现在它知道浏览器中有什么可用的东西,并相应地进行调整。
有很多环境,你可以同时声明多个,例如,in-line:
/* eslint-env browser, node */
如果你总是使用特定的环境,最好在ESLint的配置文件中设置它,然后忘记它。
医生说:
环境定义了预定义的全局变量。的
可用的环境包括:
浏览器-浏览器全局变量。
node - node .js全局变量和node .js作用域。
commonjs - commonjs全局变量和commonjs作用域(使用Browserify/WebPack的纯浏览器代码使用这个)。
shared-node-browser -节点和浏览器共用的全局变量。
[…]
除了环境,你可以让它忽略任何你想要的东西。如果它警告你使用console.log(),但你不想被警告,只需内联:
/* eslint-disable no-console */
您可以看到所有规则的列表,包括最佳编码实践的推荐规则。