Atom & eslint:找不到模块 'eslint-config-react-app'

Posted

技术标签:

【中文标题】Atom & eslint:找不到模块 \'eslint-config-react-app\'【英文标题】:Atom & eslint: Cannot find module 'eslint-config-react-app'Atom & eslint:找不到模块 'eslint-config-react-app' 【发布时间】:2020-02-28 21:08:40 【问题描述】:

自从我在我的 create-react-app 项目中重新安装了 NPM 依赖项后,Atom 的 eslint 在每个文件的顶部都给了我这个错误:

Error while running ESLint: Cannot find module 'eslint-config-react-app'.

虽然react-scripts 的 eslint 不会引发任何警告或错误。顺便说一句,包eslint-config-react-app 安装在node_modules 中。 我尝试重新安装 linter-eslint、atom、NPM 依赖项等。没有任何效果。

有人有想法吗?

这是我的 .eslintrc :


  "extends": "react-app",
  "rules": 
    "jsx-a11y/anchor-is-valid": 0,
    "react/jsx-no-comment-textnodes": 0,
    "no-unused-vars": ["warn", 
      args: "all",
      ignoreRestSiblings: false,
      argsIgnorePattern: "^_$"
    ]
  


编辑:我不知道为什么,但突然之间,错误发生了变化,现在它是每个 js 文件顶部的错误:

Error while running ESLint: Invalid regular expression flags

编辑 2

给定的解决方案都不适用于我的情况。 linter-eslint 的问题没有解决。但我现在找到了一种解决方法:使用fast-eslint 而不是linter-eslint。效果很好。

【问题讨论】:

npm i -g babel-eslint@^7.2.3 eslint@^4.1.1 eslint-plugin-flowtype@^2.34.1 eslint-plugin-import@^2.6.0 eslint-plugin- jsx-a11y@^5.1.1 eslint-plugin-react@^7.1.0 在我使用 vscode 的情况下,这发生在我导入多个项目时。所以我关闭了所有东西,只将我的项目作为根文件夹导入 你是全局安装ESLint还是本地安装? Atom 可能正在使用全局安装的,无法解析本地安装的插件。 @Jdub 这不起作用。 @YoannesGeissler 不是我的情况,我在其他开放项目中使用 Atom 和其他 eslint 配置工作得很好。 【参考方案1】:

对于尝试此操作的其他人,一种解决方案是全局安装 eslint-config-react-app 及其所有对等部门。目前是:

参考https://github.com/facebook/create-react-app/issues/3633#issuecomment-361485857

npm i -g babel-eslint@^7.2.3 eslint@^4.1.1 eslint-plugin-flowtype@^2.34.1 eslint-plugin-import@^2.6.0 eslint-plugin-jsx-a11y@^5.1.1 eslint-plugin-react@^7.1.0

【讨论】:

【参考方案2】:

由于您提到问题是在您重新安装后发生的 npm 模块,它可能与 npm 依赖解析有关。所以 你可能有同一个模块的多个版本,而 atom 可能 用错了。

    根据Displaying Lint Output in the Editor检查你的react-scripts版本是否为0.2.0或更高

    从您的package.json 中删除所有与eslint 相关的依赖项。

    这意味着删除babel-eslinteslinteslint-plugin-flowtypeeslint-plugin-importeslint-plugin-jsx-a11yeslint-plugin-react

    Create react app 安装所有 linting 依赖项 引擎盖,所以你不应该手动安装它们。

    删除所有 全局 eslint 相关依赖项。

    通常你不需要像你可能的那样使用全局安装的 eslint 依赖项 在每个项目中都有不同的 eslint 版本。

然后,最新版本的linter-eslint 应该在您的项目中使用来自node_modules 下的正确 eslint 依赖项。

更新:根据您的 cmets 和已编辑的问题,我尝试使用 CRA 复制此内容,替换 package.json 中的依赖项,重新安装并添加以下 .eslintrc

请注意,我在"no-unused-vars" 的选项键周围添加了"


  "extends": "react-app",
  "rules": 
    "jsx-a11y/anchor-is-valid": 0,
    "react/jsx-no-comment-textnodes": 0,
    "no-unused-vars": ["warn", 
      "args": "all",
      "ignoreRestSiblings": false,
      "argsIgnorePattern": "^_$"
    ]
  

完成所有这些后,我无法重现该问题。

【讨论】:

我的 package.json 中没有这样的依赖项(这里是:pastebin.com/jJ5YL1NN)。正如有人让我在 cmets 中意识到的那样,开始全新的 CRA 安装不会给我任何错误,很奇怪(这也意味着全局依赖项没有任何问题)。 关于您的更新:linter-eslint 不会在 Atom 中给您一个错误?你的 linter-eslint 配置是什么?不过我的项目有问题。当我在另一个 linux 上使用另一个 Atom & Everything 安装 git clone 它时,我仍然有同样的错误。 我使用了 linter-eslint 的默认设置,除了我启用了自动修复(例如修复保存时的错误)。确保您的 Global ESLint 已禁用(这是默认设置)。

以上是关于Atom & eslint:找不到模块 'eslint-config-react-app'的主要内容,如果未能解决你的问题,请参考以下文章

无法加载插件@typescript-eslint:找不到模块'eslint-plugin-@typescript-eslint'

共享 eslint 配置找不到节点模块

使用 Prettier Eslint 时找不到模块“@typescript-eslint/parser”

(ESLint)在 VS 2017 反应项目中找不到模块“eslint-config-react-app”

VSCode 加载插件失败找不到模块 'eslint-plugin-prettier'

终端中的 eslint 找不到模块“eslint-config-react-app”