【问题标题】:Eslint not ignoring node_modules folderEslint 不忽略 node_modules 文件夹
【发布时间】:2020-05-28 05:34:57
【问题描述】:

不知何故,在将Babel6 更新为7 之后,我的eslint 开始在node_modules 中发出这样的警告:

所以,据我了解,node_modules 文件夹不会被忽略,这就是问题出现的原因。所以,阅读eslint docs:

https://eslint.org/docs/user-guide/configuring

我尝试将"ignorePatterns": ["node_modules/"], 添加到.eslintrc 文件但出现错误:

模块构建失败:错误:/Users/vlasenkona/Desktop/gris-seqr2/ui/.eslintrc 中的 ESLint 配置无效: - 意外的顶级属性“ignorePatterns”。

所以,我尝试创建 .eslintignore 文件并在那里添加 node_modules/ 但警告保持不变。我怎么能忽略node_modules 文件夹?我正在使用的软件包版本:

"eslint": "^5.16.0",
"babel-eslint": "^9.0.0",
"eslint-config-airbnb": "^16.1.0",
"eslint-import-resolver-babel-module": "^5.1.2",
"eslint-loader": "1.9.0",
"eslint-plugin-flowtype": "2.39.1",
"eslint-plugin-import": "^2.20.1",
"eslint-plugin-jsx-a11y": "^6.1.0",
"eslint-plugin-react": "^7.10.0",
"eslint-plugin-react-perf": "^2.0.8",

.eslintrc 看起来像这样:

{
  "extends": [
    "airbnb",
    "plugin:react-perf/recommended"
  ],  
  "parser": "babel-eslint",
  "parserOptions": {
    "ecmaFeatures": {
      "experimentalObjectRestSpread": true
    }   
  },  
  "env": {
    "mocha": true,
    "es6": true,
    "browser": true,
    "node": true,
    "jest": true
  },  
  "settings": {
    "import/resolver": {
      "babel-module": {}
    }   
  },  
  "rules": {
    "semi": [2, "never"],
    "no-shadow": ["error", { "allow": ["error"] }], 
    "arrow-body-style": 0,
    "func-names": 0,
    "function-paren-newline": 0,
    "max-len": 0, //["warn", 80, 2], 
    "no-console": 0,
    "no-multi-str": 0,
    "no-param-reassign": 0,
    "no-plusplus": 0,
    "brace-style": 0,
    "object-curly-newline": 0,
    "padded-blocks": 0,
    "react/jsx-first-prop-new-line": 0,
    "react/jsx-wrap-multilines": 0,
    "react/prefer-stateless-function": 0,
    "react/sort-comp": 0,  // more freedom in arranging class functions
    "import/prefer-default-export": 0,
    "react/forbid-prop-types": 0,
    "no-class-assign": 0,
    "react/jsx-filename-extension": [ 1, { "extensions": [".js", ".jsx"]} ],
    "react/require-default-props": 0,
    "react/require-optimization": 2,
    "react/jsx-max-props-per-line": 0,
    "react/jsx-no-target-blank": 0,
    "spaced-comment": 0,

    "jsx-a11y/iframe-has-title": 0,
    "jsx-a11y/tabindex-no-positive": 0,
    "jsx-a11y/click-events-have-key-events": 0,
    "jsx-a11y/anchor-is-valid": 0
  }
}

更新

我尝试将以下内容添加到新创建的.eslintignore

node_modules/*
./node_modules/**
**/node_modules/**

但两者都不起作用。有趣的是,如果我打开./node_modules/draftjs-md-converter/dist/index.js 并将/*eslint-disable */ 文件放在文件的开头和结尾,警告仍然存在,所以也许这不是eslint 问题:只是完全误导性警告?..

【问题讨论】:

  • 忽略.eslintignore中所有带有node_modules/*的node_modules文件夹
  • 我也试过了,错误还是一样
  • 还尝试将eslint 降级到版本4.19.1,但没有成功
  • 我遇到了类似的问题...@NikitaVlasenko 你解决了吗?
  • 不,我不是。我真的很困惑,所以如果你设法解决它,请告诉我。

标签: node.js eslint babel-eslint


【解决方案1】:

在我的例子中,ESLint (v7.8.1) 正确地忽略了node_modules 目录,但不是我的dist 目录。我将此添加到.eslintignore

client/dist/

这解决了问题。

【讨论】:

    【解决方案2】:

    忽略根文件夹中 .eslintignore 文件中的 node_modules/ 对我有用。

    node_modules/* 没有,它导致“发生未处理的异常:无法加载配置“airbnb”以扩展。” linting 子项目时或类似错误。

    我们的项目结构如下:

    根项目

    • node_modules
    • 项目
      • 子项目
        • node_modules
        • package.json
        • .eslintrc.json
        • ...
    • 源代码
    • .eslintignore
    • .eslintrc.json
    • ...

    【讨论】:

      【解决方案3】:

      我也遇到了同样的问题。 解决方案: 确保您的文件“.eslintrc”位于项目的根目录中。 package.json、node_modules 和其他东西在哪里。祝你好运。

      【讨论】:

      • 对我来说,.eslintrc 已经在这些其他文件所在的文件夹中。将其移至我拥有的大型项目的根目录在逻辑上是错误的。
      猜你喜欢
      • 2015-02-17
      • 2018-01-12
      • 2015-07-01
      • 1970-01-01
      • 2019-01-09
      • 1970-01-01
      • 2012-08-07
      • 2020-10-25
      • 1970-01-01
      相关资源
      最近更新 更多