ESLint:如何设置.eslintrc以识别'要求'?

时间:2015-06-17 20:08:31

标签: javascript intellij-idea eslint jshint lint

我是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()

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

4 个答案:

答案 0 :(得分:65)

amd添加到env内的.eslintrc,您可以根据define()规范使用require()amd

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

答案 1 :(得分:21)

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

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

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

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

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

答案 2 :(得分:4)

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

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

答案 3 :(得分:0)

在 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)实际上都有效 - 它不必是工作区。