已为 @typescript-eslint/parser 设置“ParserOptions.project”

“ParserOptions.project” 已经设置为 @typescript-eslint/parser

“ParserOptions.project” has been set for @typescript-eslint/parser

当我们尝试对不包含在我们的 TypeScript 项目中的文件进行 lint 时,会出现错误“解析错误:已为 @typescript-eslint/parser 设置了“parserOptions.project”。

要解决该错误,请将出现错误的文件添加到您的文件中
.eslintignore

parseroptions 项目已设置为

例如,错误发生在我的.eslintrc.js文件中。

.eslintrc.js
// ⛔️ Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser. // The file does not match your project config: .eslintrc.js. // The file must be included in at least one of the projects provided.eslint module.exports = { // ... }

当我们尝试检查不包含在我们的 TypeScript 项目中的文件时,ESLint 会抛出此错误,例如,不包含在tsconfig.jsoninclude的数组中

这些很可能是位于根目录中的配置文件,例如.eslintrc.jsbabel.config.js.

添加发生错误的文件到.eslintignore

解决该错误最简单的方法是将您获取它的文件添加到您的.eslintignore文件中,该文件应位于项目的根目录中,紧挨着.eslintrc.js.

.eslintignore
# don't ever lint node_modules node_modules # don't lint build output (make sure it's set to your correct build folder name) build # don't lint nyc coverage output coverage .eslintrc.js .babel.config.js
将导致错误的文件添加到您的.eslintignore文件中可以解决问题,因为 ESLint 不再尝试解析它们。

创建一个单独的tsconfig文件来解决错误

另一种解决方案是为 ESLint 创建一个单独的tsconfig文件,并指示它也检查配置文件。

我们基本上必须扩展我们的原始tsconfig文件并添加所有未包含在原始tsconfig.json文件中的文件,但 ESLint 正在尝试 lint。

如果您决定使用这种方法,请tsconfig.eslint.json在项目的根目录中创建一个文件,就在您的tsconfig.json文件旁边。

tsconfig.eslint.json文件
{ "extends": "./tsconfig.json", "include": [ // 👇️ add all the directories and files // that you want to lint here "src", "tests", // add all files in which you see // the "parserOptions.project" error ".eslintrc.js" ] }

确保将所有要检查的目录添加到数组中include

现在打开您的.eslintrc.js文件并更新project属性以指向特定于 eslint 的tsconfig文件。

.eslintrc.js
module.exports = { parserOptions: { project: 'tsconfig.eslint.json', sourceType: 'module', // ... rest }, // ... rest };

简而言之,将所有要进行 lint 但未包含在文件中的文件
tsconfig.json添加到文件include中的数组中tsconfig.eslint.json这些很可能是位于根目录中的配置文件。

.eslintignore或者,如果您不想对它们进行 lint,则可以将您在其中看到错误的任何文件添加到您的文件中

您的错误应该已解决,如果没有,请尝试重新启动您的 IDE。

创建.vscode文件夹解决错误

如果错误仍未解决并且您使用 VSCode IDE,请
.vscode在项目的根目录下创建一个文件夹。

在目录中添加一个settings.json文件.vscode并粘贴以下内容。

.vscode/settings.json
{ "eslint.workingDirectories": [ "src" ] }

该文件假定您要对src目录进行 lint。

如果您的项目有 2 个您想要检查的目录,例如frontend
backend,请将数组更新workingDirectories为如下所示:

.vscode/settings.json
{ "eslint.workingDirectories": [ "frontend", "backend" ] }

该设置指示 ESLint 如何解析相对于我们工作目录的配置文件(.eslintrc.js
)。
.eslintignore

错误的另一个原因是当我们在与包含我们的 ESLint 配置的目录不同的目录中打开我们的代码编辑器时。

例如,如果您的项目位于某个user/typescript/目录中,而您在该目录中打开代码编辑器user/,则可能会出现错误。

相反,请先尝试导航到该user/typescript/目录,然后再打开您的代码编辑器。

如果您需要禁用特定文件或行的类型检查,请查看以下文章

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: