解析错误:无法读取文件“tsconfig.json”
Parsing Error: Cannot read file ‘tsconfig.json’
要解决错误“解析错误:无法读取文件‘tsconfig.json’”,请更新您的.eslintrc.js
文件以将tsconfigRootDir
选项设置__dirname
为强制 eslint 相对于所在文件夹解析您的项目配置
.eslintrc.js
。
打开您的.eslintrc.js
文件并添加或更新您的parserOptions
对象,使其看起来像:
module.exports = { parserOptions: { project: 'tsconfig.json', tsconfigRootDir: __dirname, sourceType: 'module', }, // ... rest };
通过设置
parserOptions
对象,我们告诉 ESLint 我们想要支持哪些 JavaScript 语言选项。
该sourceType
选项设置为module
表示我们要支持 ES6 模块。
tsconfigRootDir
选项设置为__dirname
,因此 ESLint 会根据.eslintrc.js
文件解析我们的项目配置。一旦你更新了你的parserOptions
对象,你可能会得到一个错误:
// ⛔️ 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
文件。
{ "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', 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
并粘贴以下内容。
{ "eslint.workingDirectories": [ "src" ] }
该文件假定您要对src
目录进行 lint。
如果您的项目有 2 个您想要检查的目录,例如frontend
和
backend
,请将数组更新workingDirectories
为如下所示:
{ "eslint.workingDirectories": [ "frontend", "backend" ] }
该设置指示 ESLint 如何解析相对于我们工作目录的配置文件(.eslintrc.js
和
)。.eslintignore
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.