无法加载在“...» eslint-config-standard”中声明的插件“import”:找不到模块“eslint-plugin-import”

And*_*dré 7 npm eslint visual-studio-code

我一直在尝试将 ESLint 与 Standard 一起使用,但一直无法使其正常工作。我已经尝试通过 eslint --init 设置它,全局卸载 eslint 并在本地拥有所有包,手动安装每个包npm install --save-dev eslint eslint-config-standard eslint-plugin-standard eslint-plugin-promise eslint-plugin-import eslint-plugin-node,重新安装 ESLint 扩展,到目前为止什么都没有。我完全能够运行./node_modules/.bin/eslint --fix ...以修复/检查错误,但它在任何意义上都不适用于 VSCode 扩展。我没有更漂亮,所以它也与它无关。

输出:

[Info  - 12:33:20 AM] ESLint server is running.
[Info  - 12:33:23 AM] ESLint library loaded from: c:\Users\h08FXplsV8\Documents\dev\node\graphql-bootcamp\graphql-prisma\node_modules\eslint\lib\api.js
[Error - 12:33:25 AM] 
Failed to load plugin 'import' declared in 'graphql-prisma\.eslintrc » eslint-config-standard': Cannot find module 'eslint-plugin-import'
Require stack:
 - C:\Users\h08FXplsV8\Documents\dev\node\graphql-bootcamp\__placeholder__.js
Happened while validating C:\Users\h08FXplsV8\Documents\dev\node\graphql-bootcamp\graphql-prisma\src\resolvers\index.js
This can happen for a couple of reasons:
 - The plugin name is spelled incorrectly in an ESLint configuration file (e.g. .eslintrc).
 - If ESLint is installed globally, then make sure 'eslint-plugin-import' is installed globally as well.
 - If ESLint is installed locally, then 'eslint-plugin-import' isn't installed correctly.
Run Code Online (Sandbox Code Playgroud)

.eslintrc:

{
    "env": {
        "es6": true,
        "node": true
    },
    "extends": [
        "standard"
    ],
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly"
    },
    "parserOptions": {
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    "rules": {
    }
}
Run Code Online (Sandbox Code Playgroud)

我在 SO 中看到了与此问题相关的其他问题,但不幸的是,没有一个解决方案有效。

小智 13

要修复依赖关系树,请尝试按确切顺序执行以下步骤:

  1. 删除项目文件夹中的package-lock.json(不是package.json!)和/或yarn.lock。
  2. 删除项目文件夹中的node_modules。
  3. 从项目文件夹中的 package.json 文件中的依赖项和/或 devDependency 中删除“babel-eslint”。
  4. 运行 npm install 或yarn,具体取决于您使用的包管理器。

  • 我完成了这些步骤,然后重新启动了 IDE。重启后就成功了。但很难说哪个是解决方案。 (2认同)

Nig*_*ist 12

另外,请确保您拥有最新版本的“eslint-plugin-import”插件,就像我的情况一样,例如我在“2.20.1”版本中遇到此错误,但最新的“2.25.3”解决了此问题


小智 10

我遇到了同样的问题好几个星期,终于在 Github 上找到了这个帖子和评论:https : //github.com/microsoft/vscode-eslint/issues/696#issuecomment-542592372

我的问题原来与子目录有关。一旦我使该项目成为唯一一个带有 .eslintrc.js 文件的开放项目,我所有的 linting 问题都消失了。

希望这对你有用。

  • 谢谢@mike-stevens,我发现将 `eslint.workingDirectories` 设置为 `"mode": "auto"` 可以让我在 vscode 中加载整个 mono-repo,并且 eslint 在每个项目中都可以工作。请参阅https://github.com/microsoft/vscode-eslint/issues/696#issuecomment-561732898 (6认同)