dar*_*n z 88 node.js typescript eslint typescript-eslint
该错误Parsing error: Cannot read file '.../tsconfig.json'.eslint
显示在.ts
文件src
夹中的所有文件中,包括index.ts
.
我不知道如何设置配置。该问题仅显示一条红线并使文件变为红色。但是,一切都可以编译并运行良好。整个 Node 项目是使用 firebase CLI 创建的。
tsconfig.json
文件:
{
"compilerOptions": {
"module": "commonjs",
"noImplicitReturns": true,
"noUnusedLocals": true,
"outDir": "lib",
"sourceMap": true,
"strict": true,
"target": "es2017"
},
"compileOnSave": true,
"include": [
"src"
]
}
Run Code Online (Sandbox Code Playgroud)
.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",
},
},
},
};
Run Code Online (Sandbox Code Playgroud)
我曾尝试重新启动 VScode,清除缓存,但都无济于事。我猜我需要更改一些路径,但我不太擅长更改配置文件,所以我不想意外破坏整个项目。
che*_*som 172
默认情况下,project
s (in parserOptions
) 是相对于当前工作目录解析的。如果您eslint
在与包含 的文件夹不同的工作目录中运行tsconfig.json
,@typescript-eslint/parser 将无法找到该文件。
要解决此问题,您可以设置tsconfigRootDir
为__dirname
,这将使解析器解析相对于 的项目配置.eslintrc.js
:
module.exports = {
// ...
parserOptions: {
project: "tsconfig.json",
tsconfigRootDir: __dirname,
sourceType: "module",
},
// ...
}
Run Code Online (Sandbox Code Playgroud)
Ian*_*ink 79
对于使用 Angular 和 的用户eslintrc.json
,请将 2 颗星添加到项目节点,如下所示:
"overrides": [
{
"files": ["*.ts"],
"parserOptions": {
"project": ["**/tsconfig.json"]
}
}
]
Run Code Online (Sandbox Code Playgroud)
Dim*_*sov 37
对我有用的 VSCode 特定方法是.vscode
在根项目目录中创建一个文件夹,并将以下属性添加到其中的settings.json
文件中:
{
"eslint.workingDirectories": [
"src"
]
}
Run Code Online (Sandbox Code Playgroud)
该"src"
可以是任何目录,这应该是在eslint的范围。
通过以下行更新您的 eslintrc.json 文件:
"project": "PROJECT_NAME/tsconfig.json"
归档时间: |
|
查看次数: |
42570 次 |
最近记录: |