Javascript和ESLint中的全局变量


100

我有多个JavaScript文件,并且在文件中定义了一些全局变量,该全局变量先于其他变量加载。因此,在第一个文件之后加载的所有文件都可以访问全局变量。但是,ESLint将全局变量显示为“未定义”。我不想更改ESLint的规则,我想找到一种优雅的方法来摆脱这些错误消息。有什么线索吗?谢谢


4
-> eslint.org/docs/user-guide/configuring#specifying-globals。ESLint的文档是很棒的IMO,您应该看一下。
菲利克斯·克林

Answers:


113

我认为入侵每个文件的ESLint规则不是一个好主意。

您应该globals.eslintrc或中定义package.json

对于.eslintrc:

"globals": {
    "angular": true
}

对于package.json

"eslintConfig": {
    "globals": {
        "angular": true
    }
}

聚苯乙烯

阅读文档是开发人员必不可少的美德

https://eslint.org/docs/user-guide/configuring#specifying-globals


7
值得注意的是,true如果可以将全局变量分配给其他变量,并且false不应该将其重新分配,则将全局变量设置为。
RedSparr0w

6
链接文档是Stackoverflow答案上的一大优点。
Romain G

@RomainG下面已经有链接;)但是,我会为您添加一个
v-andrew '18

86

您可以为每个文件或在配置中添加全局变量。如果您不想更改配置,则必须在每个文件中添加使用的全局变量。

要使用JavaScript文件中的注释指定全局变量,请使用以下格式:

/* global var1, var2 */

这定义了两个全局变量var1var2。如果要有选择地指定这些全局变量永远不应该写入(只能读取),则可以为每个全局变量设置一个false标志:

/* global var1:false, var2:false */

http://eslint.org/docs/2.0.0/user-guide/configuring#specifying-globals

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.