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 规则是个好主意。
您应该在.eslintrc
或package.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 */
这定义了两个全局变量
var1
和var2
。如果您想选择性地指定这些全局变量不应该被写入(只读取),那么您可以为每个变量设置一个 false 标志:/* global var1:false, var2:false */
http://eslint.org/docs/2.0.0/user-guide/configuring#specifying-globals
【讨论】:
以上是关于Javascript 和 ESLint 中的全局变量的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 中的 EsLint - 无法在 javascript 文件上使用静态道具
eslint 或 jslint 中的 Javascript lambda/匿名函数长度警告