解析错误:无法读取文件“tsconfig.json”

解析错误:无法读取文件“tsconfig.json”

Parsing Error: Cannot read file ‘tsconfig.json’

要解决错误“解析错误:无法读取文件‘tsconfig.json’”,请更新您的.eslintrc.js文件以将tsconfigRootDir选项设置__dirname为强制 eslint 相对于所在文件夹解析您的项目配置
.eslintrc.js

打开您的.eslintrc.js文件并添加或更新您的parserOptions对象,使其看起来像:

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

通过设置
parserOptions
对象,我们告诉 ESLint 我们想要支持哪些 JavaScript 语言选项。

sourceType选项设置为module表示我们要支持 ES6 模块。

tsconfigRootDir选项设置为__dirname,因此 ESLint 会根据.eslintrc.js 文件解析我们的项目配置。

一旦你更新了你的parserOptions对象,你可能会得到一个错误:

.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

如果您将“parserOptions.project”设置为
@typescript-eslint/parser错误,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', tsconfigRootDir: __dirname, sourceType: 'module', }, // ... rest };

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

这是必需的,因为parserOptions.project如果我们尝试对不包含在我们的 TypeScript 项目中的文件进行 lint,将选项添加到 TypeScript 项目会导致 ESLint 抛出错误。

include为了解决这个问题,我们必须在文件的数组中指定我们想要 lint 的所有tsconfig.eslint.json文件。

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

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

如果“Parsing Error: Cannot read file ‘tsconfig.json’”的错误仍未解决,并且您使用 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

Another cause of the “Parsing Error: Cannot read file ‘tsconfig.json'” is when we open our code editor in a different directory than the one that contains our ESLint config.

For example, if your project is in a user/typescript/ directory and you open
your code editor in the user/ directory, you might get the error.

Instead, try to navigate to the user/typescript/ directory first and then open
your code editor.

Conclusion #

To solve the error “Parsing Error: Cannot read file ‘tsconfig.json'”, update
your .eslintrc.js file to set the tsconfigRootDir option to __dirname to
force eslint to resolve your project configuration relative to the folder where
.eslintrc.js is located.