【问题标题】:Error: Cannot find module 'eslint/lib/rules/no-unused-expressions'错误:找不到模块“eslint/lib/rules/no-unused-expressions”
【发布时间】:2019-03-28 01:03:15
【问题描述】:

通过 NPM 安装 ESLint 后,我​​的浏览器出现以下错误:

错误:找不到模块“eslint/lib/rules/no-unused-expressions” 引用自:

知道是什么原因造成的,我该如何解决?

【问题讨论】:

  • 你初始化 eslint 了吗? eslint --init
  • 你运行 eslint 吗?,eslint yourfile.js
  • 你有 eslintrc 文件吗??
  • eslint --init generate --> 'eslint' 不是内部或外部命令、可运行程序或批处理文件。
  • npm i eslint -g

标签: reactjs npm node-modules eslint


【解决方案1】:

我知道现在回答太晚了,也许它会帮助到这个帖子的人。

对于 linux 用户并使用 npx 只需键入 npx eslint --init 作为 documentation says

【讨论】:

    【解决方案2】:

    轻松修复 #1

    npm i -D --save eslint-loader
    

    轻松修复 #2

    npm i -D --save eslint@5.16.0
    

    解释

    • 如果您查看错误堆栈跟踪,您会看到错误实际上是从eslint-loader/index.js 触发的(所以不是eslint)。
    • 然后在node_modules中,你可以找到eslint-loader,并在其package.json中查看版本。它可能已经过时了。我的是 1.9.0,而 eslint-loader 的当前版本是 4.0.2
    • 回到错误 - 它所抱怨的路径显然确实在较新版本的 eslint(我认为是 v6)中从 eslint/lib/formatters/stylish 更改为 eslint/lib/formatters/<some-other-folder>/stylish。现在这个旧的 eslint-loader 版本无法在 eslint 中找到更新的路径。

    因此,要么将 eslint-loader 升级到知道这条新路径的新版本(简单修复 1),要么将 eslint 降级到它具有旧路径时(简单修复 2),两者都应该有效。

    为了记录,我认为这个过时的依赖来自 webpack,这使得 create-react-app 人员难以调试。

    【讨论】:

    • 安装 eslint 有效,但我根本不想要它。正如你所说,它可能来自 Webpack。
    • 当使用 create-react-app 时,无论你是否想要,Webpack 都会为你提供 ESLint。要完全摆脱 ESLint,您可能必须退出项目,然后自己挖掘项目以摆脱它。如果项目不是 create-react-app,则从 package.json 中删除 ESLint,完全删除 package-lock.json 文件,删除 node_modules 文件夹,然后执行 npm install。这应该完全删除 ESLint
    【解决方案3】:

    尝试以下步骤:

    1. 删除 package-lock.json 文件
    2. 删除 node_modules 文件夹
    3. 删除 .eslintrc 文件
    4. 删除包含“eslint”的 devDependencies
    5. 在终端输入:npm install
    6. 在终端输入:npm run start

    如果您想拥有 eslint,请尝试检查您的 devDependencies 中是否有以下行:

    "eslint": "5.6.0"
    
    1. NPM 安装 ESLINT

    【讨论】:

    • 按照上面的操作会产生另一个错误,现在 npm start 也不起作用。
    • 您需要确保从 package.json 中删除 eslint 时没有破坏 json。你能发布你的 package.json 文件吗?
    • 另外,我要求你删除 package-lock.json 而不是 package.json。
    • 所以你修复 eslint 的方法是移除 eslint?
    • @GeorgeMarin 不,它正在完全删除 eslint,如果需要 eslint,请再次添加该 eslint + npm install eslint
    【解决方案4】:

    已删除节点模块文件夹
    删除了我的 package-lock.json 文件
    从 package.json 文件中移除 eslint
    再次安装所有包

    npm install   
    npm start 
    

    一切都恢复正常了

    【讨论】:

      【解决方案5】:

      确保清理您的node_modules。删除你的 package-lock.json。并运行

      npm cache clean --force 清理缓存。 现在通过在目录下运行来安装eslint

      npm i --save eslint

      【讨论】:

        【解决方案6】:

        我在使用 create-react-app 时遇到了这个问题。 React 脚本已经安装了 eslint 版本,这意味着你不需要自己安装 eslint。我通过执行以下操作解决了这个问题:

        1. 已删除节点模块文件夹
        2. 删除了我的 package-lock.json 文件
        3. 从 package.json 文件中删除了我本地安装的 eslint
        4. 再次安装所有软件包npm install
        5. npm start 一切都恢复正常了

        【讨论】:

          猜你喜欢
          • 2020-04-09
          • 2019-12-22
          • 2021-12-13
          • 2021-06-17
          • 2020-11-11
          • 2021-12-06
          • 2018-06-27
          • 2019-03-18
          相关资源
          最近更新 更多