Javascript 和 ESLint 中的全局变量

Posted

技术标签:

【中文标题】Javascript 和 ESLint 中的全局变量【英文标题】:Global variables in Javascript and ESLint 【发布时间】:2017-05-23 22:50:17 【问题描述】:

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

【问题讨论】:

-> eslint.org/docs/user-guide/configuring#specifying-globals 。 ESLint 的文档是很棒的 IMO,你应该看看。 【参考方案1】:

我不认为修改每个文件的 ESLint 规则是个好主意。

您应该在.eslintrcpackage.json 中定义globals

对于 .eslintrc:

"globals": 
    "angular": true

对于package.json

"eslintConfig": 
    "globals": 
        "angular": true
    

查看https://eslint.org/docs/user-guide/configuring/language-options#specifying-globals

【讨论】:

值得注意的是,如果您可以将全局变量设置为true,如果您可以将其分配给其他变量,则将其设置为false(如果不应该重新分配)。 链接文档是一种美德,在 *** 的答案中非常受欢迎。 @RomainG 下面已经有链接了 ;) 但我会为你添加一个 此外,您实际上可以制作它们"readonly""writable"【参考方案2】:

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

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

/* global var1, var2 */

这定义了两个全局变量var1var2。如果您想选择性地指定这些全局变量不应该被写入(只读取),那么您可以为每个变量设置一个 false 标志:

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

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

【讨论】:

以上是关于Javascript 和 ESLint 中的全局变量的主要内容,如果未能解决你的问题,请参考以下文章

覆盖子目录中的全局 eslint 配置规则

Visual Studio 中的 EsLint - 无法在 javascript 文件上使用静态道具

ESLint

eslint 或 jslint 中的 Javascript lambda/匿名函数长度警告

ESLint 在 Yarn 全局安装中出现 Prettier 问题

如何修复 ESLint 中的意外令牌?