Javascript和ESLint中的全局变量

mar*_*sap 86 javascript variables global eslint

我有多个javascript文件,我已经在一个文件中定义了一些全局变量,该文件在其他文件之前加载.因此,在第一个文件之后加载的所有文件都可以访问全局变量.但是,ESLint将全局变量显示为"未定义".我不想改变ESLint的规则,我想找到一种优雅的方法来摆脱这些错误信息.任何线索?谢谢

v-a*_*rew 91

我不认为每个文件的黑客ESLint规则是一个好主意.

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

对于.eslintrc:

"globals": {
    "angular": true
}
Run Code Online (Sandbox Code Playgroud)

用于package.json:

"eslintConfig": {
    "globals": {
        "angular": true
    }
}
Run Code Online (Sandbox Code Playgroud)

PS

阅读文档对于开发人员来说是必须的

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

  • 值得注意的是,如果可以将变量分配给其他变量,则将全局变量设置为"true",如果不应该重新分配,则将其设置为"false". (7认同)
  • 此外,您实际上可以将它们设置为“只读”或“可写”。 (6认同)
  • 链接文档是一种在stackoverflow答案上非常受欢迎的美德. (5认同)

小智 73

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

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

/* global var1, var2 */
Run Code Online (Sandbox Code Playgroud)

这定义了两个全局变量,var1var2.如果您希望有选择地指定永远不应该写入这些全局变量(仅读取),那么您可以使用false标志设置每个变量:

/* global var1:false, var2:false */
Run Code Online (Sandbox Code Playgroud)

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