我是ESLint的新手,并且我已成功将ESLint与IntelliJ集成。
开箱即用,我的 ESLint 集成无法识别
node
,但对文档的基本审查表明,通过在项目文件夹的根目录下创建名为 .eslintrc
的配置文件(使用正确的 IntelliJ 设置来访问此文件)文件)并设置 "node":true
,ESLint 识别 node
(即,以下完整的 .eslintrc
有效)。
// Contents of .eslintrc at root of project - support for Node and jQuery
{
"env" : {
"node" : true,
"jquery" : true
},
}
但是,ESLint 仍然无法识别
require()
,如下截图所示:
我在合理的时间内尽了最大努力寻找如何让
ESLint
识别 require()
的基本问题的解决方案。 特别是,我发现了一个可能的提示here,它建议在(我推测)"amd":false
文件中添加.eslintrc
- 但没有执行。
这看起来很基本。 我怎样才能让
.eslintrc
认出require()
?
(如果您在回答中能够提供如何涵盖更一般情况的见解,那也会很有帮助。谢谢!)
将
amd
添加到 env
内的 .eslintrc
将使您能够根据 define()
规范使用 require()
和 amd
:
{
"env": {
"amd": true
}
}
问题不在于 ESLint。如果您仔细查看您的消息,它会显示JSHint。
由于您正在尝试配置 ESLint,最简单的解决方案是从 IDE 中禁用或删除 JSHint 插件。
如果您仍然想将 JSHint 与 ESLint 一起使用,您可以执行以下操作:
单文件解决方案:在文件顶部添加
/* global require */
。
"node": true
行添加到您的 .jshintrc
。
“amd”:在 env 中为 true 根据 amd 规范将 require() 和 Define() 定义为全局变量。
请参阅 http://eslint.org/docs/user-guide/configuring#specifying-environments
如果您在 Mac 上令人惊叹的 VS Code 中使用令人惊叹的 ESLint,
只需前往
~
(即/users/your-name
)
编辑
.eslintrc.json
(当然你可以在VSCode中编辑它!)
您可能会添加
"node": true
如果您正在使用节点,或者可能是“amd”,如此处答案中所述。 (“amd”专门给出了要求和定义)。
这是适用于您打开的所有工作区的全局解决方案。
重要的是,如果您“远程”使用 VS Code,这也适用,因此,没有工作区。例如,您可以仅使用 sftp 打开服务器上的文件,然后在 VSCode 中处理该文件。 或者您可能只是在 Mac 上打开一个本地文件,而不是工作区的一部分。 在这两种情况下,设置(例如,node=true)实际上都会起作用 - 它不需要是工作区。
对于 eslint 9(扁平配置,自 2023 年起),不再有“env”配置。你需要这样的东西,使用 globals 包,让 eslint 允许
require()
:
eslint.config.js:
const js = require("@eslint/js");
const globals = require('globals');
module.exports = [
// base for your config:
...js.configs.recommended,
// your custom config:
{
globals: {
// globals.amd defines require() (and define())
...globals.amd
}
}
]
(在这里回答是因为当我在实际文档之前搜索这个问题时,这个问题出现在谷歌上。)