The error Parsing error: Cannot read file '.../tsconfig.json'.eslint
shows in all .ts
files in the src
folder including index.ts
.
I have no idea how to set up configs. The issue just shows a red line and makes the file red. However, everything compiles and run fine. The entire Node project was created using the firebase CLI.
tsconfig.json
file:
{ "compilerOptions": { "module": "commonjs", "noImplicitReturns": true, "noUnusedLocals": true, "outDir": "lib", "sourceMap": true, "strict": true, "target": "es2017" }, "compileOnSave": true, "include": [ "src" ] }
.eslintrc.js
file:
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", }, }, }, };
I had tried restarting VScode, clearing the cache, and all to no avail. I am guessing I need to change some of the paths but I am not very good at changing the config files so I don't want to accidentally break the entire project.
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 .
The tsconfig. json file specifies the root files and the compiler options required to compile the project. JavaScript projects can use a jsconfig. json file instead, which acts almost the same but has some JavaScript-related compiler flags enabled by default.
By default, the project
s (in parserOptions
) are resolved relative to the current working directory. If you run eslint
in a different working directory to the folder containing tsconfig.json
, @typescript-eslint/parser will not be able to locate the file.
To fix this, you can set tsconfigRootDir
to __dirname
, which would make the parser resolve the project configuration relative to .eslintrc.js
:
module.exports = { // ... parserOptions: { project: "tsconfig.json", tsconfigRootDir: __dirname, sourceType: "module", }, // ... }
If you’re getting some trouble with
/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
see this question.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With