首页 > 解决方案 > Atom & eslint:找不到模块 'eslint-config-react-app'

问题描述

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

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

虽然react-scripts's 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. 工作得很好。

标签: reactjsatom-editorcreate-react-appeslint

解决方案


由于您提到问题是在您重新安装 npm 模块后出现的,它可能与 npm 依赖解析有关。因此,您可能有同一个模块的多个版本,而 atom 可能会使用错误的版本。

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

  2. eslint您的package.json.

    这意味着删除babel-eslint, eslint, eslint-plugin-flowtype, eslint-plugin-import, eslint-plugin-jsx-a11y, eslint-plugin-react, 等

    Create react app 会在后台安装所有 linting 依赖项,因此您不应手动安装它们。

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

    通常,您不需要使用全局安装的 eslint 依赖项,因为您的每个项目中可能有不同的 eslint 版本。

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

更新:根据您的评论和编辑过的问题,我尝试使用 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": "^_$"
    }]
  }
}

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


推荐阅读