“ParserOptions.project” 已经设置为 @typescript-eslint/parser
“ParserOptions.project” has been set for @typescript-eslint/parser
当我们尝试对不包含在我们的 TypeScript 项目中的文件进行 lint 时,会出现错误“解析错误:已为 @typescript-eslint/parser 设置了“parserOptions.project”。
要解决该错误,请将出现错误的文件添加到您的文件中
.eslintignore
。
例如,错误发生在我的.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.js
或babel.config.js
. 添加发生错误的文件到.eslintignore
解决该错误最简单的方法是将您获取它的文件添加到您的.eslintignore
文件中,该文件应位于项目的根目录中,紧挨着.eslintrc.js
.
# 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
文件旁边。
{ "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
文件。
module.exports = { parserOptions: { project: 'tsconfig.eslint.json', sourceType: 'module', // ... rest }, // ... rest };
简而言之,将所有要进行 lint 但未包含在文件中的文件
tsconfig.json
添加到文件include
中的数组中tsconfig.eslint.json
。这些很可能是位于根目录中的配置文件。
.eslintignore
或者,如果您不想对它们进行 lint,则可以将您在其中看到错误的任何文件添加到您的文件中
。
创建.vscode
文件夹解决错误
如果错误仍未解决并且您使用 VSCode IDE,请
.vscode
在项目的根目录下创建一个文件夹。
在目录中添加一个settings.json
文件.vscode
并粘贴以下内容。
{ "eslint.workingDirectories": [ "src" ] }
该文件假定您要对src
目录进行 lint。
如果您的项目有 2 个您想要检查的目录,例如frontend
和
backend
,请将数组更新workingDirectories
为如下所示:
{ "eslint.workingDirectories": [ "frontend", "backend" ] }
该设置指示 ESLint 如何解析相对于我们工作目录的配置文件(.eslintrc.js
和
)。.eslintignore
例如,如果您的项目位于某个user/typescript/
目录中,而您在该目录中打开代码编辑器user/
,则可能会出现错误。
相反,请先尝试导航到该user/typescript/
目录,然后再打开您的代码编辑器。
如果您需要禁用特定文件或行的类型检查,请查看以下文章。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: