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

Posted

技术标签:

【中文标题】使用 Prettier Eslint 时找不到模块“@typescript-eslint/parser”【英文标题】:Cannot find module '@typescript-eslint/parser' when using Prettier Eslint 【发布时间】:2021-06-01 07:15:25 【问题描述】:

保存文件时,我在 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",
[...]

【问题讨论】:

【参考方案1】:

前几天我确实遇到了这个问题,你需要去你的.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 hub 的这个问题,可能和我的不一样,请检查这个链接https://github.com/prettier/prettier-vscode/issues/905

【讨论】:

我试图添加和删除这个解析器行。目前我确实有这条线,我把它移动了——以防万一——在扩展之后。仍然出现同样的错误。 这不是同一个错误,但我确实尝试重新启动我的电脑。没用。 不工作如果你找到任何解决方案请告诉我@VítorNorton【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

希望这会有所帮助;)

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于使用 Prettier Eslint 时找不到模块“@typescript-eslint/parser”的主要内容,如果未能解决你的问题,请参考以下文章

找不到模块“eslint-plugin-prettier”

无法加载在 '.eslintrc.json' 中声明的插件 'prettier':找不到模块 'eslint-plugin-prettier'

将 .eslintrc 重新定位到父级后,ESLint 找不到配置“prettier/@typescript-eslint”

gitlab ci 集成 eslint/prettier/tsc 做代码审查,并使用 eslint 输出作为显示代码质量

为啥使用“eslint-plugin-prettier”而不是“eslint-config-prettier”[关闭]

vue+eslint项目(项目已开发)使用prettier