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

Cannot find module '@typescript-eslint/parser' when using Prettier Eslint

保存文件时,VSCode 上的 Prettier Eslint 输出出现以下错误。

Error: Cannot find module '@typescript-eslint/parser'
Require stack:
- c:\Users\vtnor\.vscode\extensions\rvest.vs-code-prettier-eslint-0.4.1\dist\extension.js
- c:\Program Files\Microsoft VS Code\resources\app\out\vs\loader.js
- c:\Program Files\Microsoft VS Code\resources\app\out\bootstrap-amd.js
- c:\Program Files\Microsoft VS Code\resources\app\out\bootstrap-fork.js

我的包裹json是:

[...]
"typescript": "^4.2.2",
"@typescript-eslint/eslint-plugin": "^4.16.1",
"@typescript-eslint/parser": "^4.16.1",
"eslint": "^7.21.0",
"prettier": "^2.2.1",
"prettier-eslint": "^12.0.0",
[...]

前几天我确实遇到了这个问题,嘿,你需要去你的 .eslintrc 并确保该模块位于配置的 parser 属性 下...最后应该看起来像这样:

{
  //...

  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended",
    "prettier/@typescript-eslint",
    "plugin:prettier/recommended"
  ],
  "parser": "@typescript-eslint/parser",
  "plugins": [
    "@typescript-eslint"
  ],

  //...
}

这应该涵盖了有关 linter 中依赖项的要点...希望对您有所帮助

编辑

我检查了 git 这个问题的集线器,可能和我的不一样,请检查这个 link https://github.com/prettier/prettier-vscode/issues/905

问题可能是 .eslintrc 找不到必要的模块,因为它们位于错误的位置。 .eslintrc 旁边需要有文件夹 node_modules。这可以通过将 .eslintrc 放入项目文件夹并在其旁边创建 package.json 来轻松实现。然后 node_modules 也会在项目文件夹中创建,并且会找到必要的(和已安装的)模块。

您的项目文件夹应类似于:

我发现在我的案例中错误的原因是 ESLint 本身抛出了一个错误。我通过查看 VSCode 中的 ESLint 输出发现了这一点。解决方法是更新我的其他依赖项之一 (eslint-plugin-import)。

也有这个问题,我解决了禁用,然后重新加载并重新启用 VSCode 的 ESLint 扩展。

希望对您有所帮助 ;)

我刚刚将 metro.config.js(就像我对 babel.config.js 的其他修复所做的那样)添加到 .eslintignore

安装 @typescript-eslint/eslint-plugin 然后重新加载 VSCode 解决了我的问题。

希望这对任何人都有帮助:D