70

我是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 无法识别 <code>require()</code>

我已经在合理的时间内尽我最大的努力寻找如何ESLint识别这个基本问题的解决方案require()。特别是,我发现了一个可能的提示here找到了一个可能的提示,它建议添加"amd":false(我推测)该.eslintrc文件 - 但不行。

这似乎很基本。我怎样才能得到.eslintrc认可require()

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

4

4 回答 4

102

根据规范,添加amdenv内部.eslintrc将使您能够使用define()and :require()amd

{
  "env": {
    "amd": true
  }
}
于 2015-06-17T20:11:13.213 回答
41

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

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

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

单文件解决方案:/* global require */在文件顶部添加。

所有文件的通用解决方案:将"node": true行添加到您的.jshintrc.

于 2015-06-17T20:26:32.637 回答
4

env中的 "amd":true 根据 amd 规范将 require() 和 define() 定义为全局变量。

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

于 2017-04-20T15:04:44.900 回答
0

在 Mac 上……全球解决方案。(2021)

如果你在 Mac 上惊人的 VS Code 中使用了惊人的 ESLint,

只需转到~(即/users/your-name

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

在此处输入图像描述

您可能会添加

"node": true

如果您正在使用节点,或者可能是此处答案中所述的“amd”。(“amd”明确给出并且仅要求和定义)。

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

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

于 2020-12-20T15:10:25.303 回答