该错误Parsing error: Cannot read file '.../tsconfig.json'.eslint显示在文件夹中的所有.ts文件中,src包括index.ts.
Parsing error: Cannot read file '.../tsconfig.json'.eslint
.ts
src
index.ts
我不知道如何设置配置。该问题仅显示一条红线并使文件变为红色。但是,一切都编译并运行良好。整个 Node 项目是使用 firebase CLI 创建的。
tsconfig.json文件:
tsconfig.json
{ "compilerOptions": { "module": "commonjs", "noImplicitReturns": true, "noUnusedLocals": true, "outDir": "lib", "sourceMap": true, "strict": true, "target": "es2017" }, "compileOnSave": true, "include": [ "src" ] }
.eslintrc.js文件:
.eslintrc.js
module.exports = { env: { browser: true, es6: true, node: true, }, extends: [ "plugin:import/errors", "plugin:import/warnings", "plugin:import/typescript", ], parser: "@typescript-eslint/parser", parserOptions: { project: "tsconfig.json", sourceType: "module", }, plugins: [ "@typescript-eslint", "import", ], rules: { "@typescript-eslint/adjacent-overload-signatures": "error", "@typescript-eslint/no-empty-function": "error", "@typescript-eslint/no-empty-interface": "warn", "@typescript-eslint/no-floating-promises": "error", "@typescript-eslint/no-namespace": "error", "@typescript-eslint/no-unnecessary-type-assertion": "error", "@typescript-eslint/prefer-for-of": "warn", "@typescript-eslint/triple-slash-reference": "error", "@typescript-eslint/unified-signatures": "warn", "comma-dangle": "warn", "constructor-super": "error", eqeqeq: ["warn", "always"], "import/no-deprecated": "warn", "import/no-extraneous-dependencies": "error", "import/no-unassigned-import": "warn", "no-cond-assign": "error", "no-duplicate-case": "error", "no-duplicate-imports": "error", "no-empty": [ "error", { allowEmptyCatch: true, }, ], "no-invalid-this": "error", "no-new-wrappers": "error", "no-param-reassign": "error", "no-redeclare": "error", "no-sequences": "error", "no-shadow": [ "error", { hoist: "all", }, ], "no-throw-literal": "error", "no-unsafe-finally": "error", "no-unused-labels": "error", "no-var": "warn", "no-void": "error", "prefer-const": "warn", }, settings: { jsdoc: { tagNamePreference: { returns: "return", }, }, }, };
我曾尝试重新启动 VScode,清除缓存,但均无济于事。我猜我需要更改一些路径,但我不太擅长更改配置文件,所以我不想意外破坏整个项目。
默认情况下,projects (in parserOptions) 相对于当前工作目录进行解析。如果您eslint在与包含 的文件夹不同的工作目录中运行tsconfig.json,@typescript-eslint/parser 将无法找到该文件。
project
parserOptions
eslint
要解决此问题,您可以设置tsconfigRootDir为__dirname,这将使解析器解析项目配置相对于.eslintrc.js:
tsconfigRootDir
__dirname
module.exports = { // ... parserOptions: { project: "tsconfig.json", tsconfigRootDir: __dirname, sourceType: "module", }, // ... }
如果你遇到麻烦
/path/to/.eslintrc.js 0:0 error 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