如何设置.eslintrc来识别'require'?

问题描述 投票:0回答:5

我是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 does not recognize <code>require()</code>

我在合理的时间内尽了最大努力寻找如何让

ESLint
识别
require()
的基本问题的解决方案。 特别是,我发现了一个可能的提示here,它建议在(我推测)
"amd":false
文件中添加
.eslintrc
- 但没有执行。

这看起来很基本。 我怎样才能让

.eslintrc
认出
require()

(如果您在回答中能够提供如何涵盖更一般情况的见解,那也会很有帮助。谢谢!)

javascript intellij-idea eslint jshint lint
5个回答
102
投票

amd
添加到
env
内的
.eslintrc
将使您能够根据
define()
规范使用
require()
amd

{
  "env": {
    "amd": true
  }
}

42
投票

问题不在于 ESLint。如果您仔细查看您的消息,它会显示JSHint

由于您正在尝试配置 ESLint,最简单的解决方案是从 IDE 中禁用或删除 JSHint 插件。

如果您仍然想将 JSHint 与 ESLint 一起使用,您可以执行以下操作:

单文件解决方案:在文件顶部添加

/* global require */

所有文件的通用解决方案:将

"node": true
行添加到您的
.jshintrc


4
投票

“amd”:在 env 中为 true 根据 amd 规范将 require() 和 Define() 定义为全局变量。

请参阅 http://eslint.org/docs/user-guide/configuring#specifying-environments


1
投票

在 Mac 上...全局解决方案。 (2021)

如果您在 Mac 上令人惊叹的 VS Code 中使用令人惊叹的 ESLint,

只需前往

~
(即
/users/your-name

编辑

.eslintrc.json
(当然你可以在VSCode中编辑它!)

enter image description here

您可能会添加

"node": true

如果您正在使用节点,或者可能是“amd”,如此处答案中所述。 (“amd”专门给出了要求和定义)。

这是适用于您打开的所有工作区的全局解决方案。

重要的是,如果您“远程”使用 VS Code,这也适用,因此,没有工作区。例如,您可以仅使用 sftp 打开服务器上的文件,然后在 VSCode 中处理该文件。 或者您可能只是在 Mac 上打开一个本地文件,而不是工作区的一部分。 在这两种情况下,设置(例如,node=true)实际上都会起作用 - 它不需要是工作区。


0
投票

对于 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
    }
  }
]

(在这里回答是因为当我在实际文档之前搜索这个问题时,这个问题出现在谷歌上。)

© www.soinside.com 2019 - 2024. All rights reserved.