Node.js 分析错误:无法读取文件'/tsconfig.json';。埃斯林特

Node.js 分析错误:无法读取文件'/tsconfig.json';。埃斯林特,node.js,typescript,eslint,typescript-eslint,Node.js,Typescript,Eslint,Typescript Eslint,错误解析错误:无法读取文件“…/tsconfig.json”。eslint显示在src文件夹中的所有.ts文件中,包括index.ts 我不知道如何设置配置。问题只是显示一条红线,并使文件变为红色。但是,一切都可以编译并正常运行。整个节点项目是使用firebase CLI创建的 tsconfig.json文件: { “编译器选项”:{ “模块”:“commonjs”, “noImplicitReturns”:正确, “noUnusedLocals”:正确, “outDir”:“lib”, “源地

错误
解析错误:无法读取文件“…/tsconfig.json”。eslint
显示在
src
文件夹中的所有
.ts
文件中,包括
index.ts

我不知道如何设置配置。问题只是显示一条红线,并使文件变为红色。但是,一切都可以编译并正常运行。整个节点项目是使用firebase CLI创建的

tsconfig.json
文件:

{
“编译器选项”:{
“模块”:“commonjs”,
“noImplicitReturns”:正确,
“noUnusedLocals”:正确,
“outDir”:“lib”,
“源地图”:正确,
“严格”:是的,
“目标”:“es2017”
},
“保存”:正确,
“包括”:[
“src”
]
}
.eslintrc.js
文件:

module.exports={
环境:{
浏览器:是的,
是的,
节点:对,
},
扩展:[
“插件:导入/错误”,
“插件:导入/警告”,
“插件:导入/键入脚本”,
],
解析器:“@typescript eslint/parser”,
解析选项:{
项目:“tsconfig.json”,
sourceType:“模块”,
},
插件:[
“@typescript eslint”,
“进口”,
],
规则:{
“@typescript eslint/相邻重载签名”:“错误”,
“@typescript eslint/无空函数”:“错误”,
“@typescript eslint/无空接口”:“警告”,
“@typescript eslint/无浮动承诺”:“错误”,
“@typescript eslint/无命名空间”:“错误”,
“@typescript eslint/无不必要的类型断言”:“错误”,
“@typescript eslint/preference for of”:“warn”,
“@typescript eslint/三重斜杠引用”:“错误”,
“@typescript eslint/unified签名”:“警告”,
“逗号悬空”:“警告”,
“超级构造函数”:“错误”,
eqeq:[“警告”,“始终”],
“导入/不推荐”:“警告”,
“导入/无无关依赖项”:“错误”,
“导入/无未分配导入”:“警告”,
“无条件分配”:“错误”,
“无重复案例”:“错误”,
“无重复导入”:“错误”,
“无空”:[
“错误”,
{
allowEmptyCatch:对,
},
],
“无无效信息”:“错误”,
“无新包装”:“错误”,
“无参数重新分配”:“错误”,
“无重新声明”:“错误”,
“无序列”:“错误”,
“没有阴影”:[
“错误”,
{
举倾:“全部”,
},
],
“无抛出文字”:“错误”,
“最终无不安全”:“错误”,
“没有未使用的标签”:“错误”,
“无变量”:“警告”,
“无无效”:“错误”,
“首选常量”:“警告”,
},
设置:{
jsdoc:{
标记名首选项:{
返回:“返回”,
},
},
},
};

我曾尝试重新启动VScode,清除缓存,但都无济于事。我猜我需要更改一些路径,但我不太擅长更改配置文件,因此我不想意外中断整个项目。

默认情况下,
项目(在
解析选项中)相对于当前工作目录进行解析。如果在包含
tsconfig.json
的文件夹的不同工作目录中运行
eslint
,@typescript eslint/parser将无法找到该文件

要解决此问题,可以设置为
\uu dirname
,这将使解析器解析相对于
的项目配置。eslintrc

module.exports={
// ...
解析选项:{
项目:“tsconfig.json”,
tsconfigRootDir:uuu dirname,
sourceType:“模块”,
},
// ...
}

一种特定于VSCode的方法,对我来说是在根项目目录中创建一个
.VSCode
文件夹,并将以下属性添加到其中的
设置.json
文件中:

{
  "eslint.workingDirectories": [
    "src"
  ]
}

“src”
可以是任何目录,它应该在eslint的范围内。

通过以下行更新您的eslintrc.json文件:


“project”:“project\u NAME/tsconfig.json”

另一种方法是,如果您碰巧打开了项目上方一级的工作区文件夹(就像我的情况一样),只需使用实际的项目文件夹启动一个新的工作区。这解决了我的Eslint错误。

它修复了所有文件警告,但.Eslint仍然出现了一个新问题:解析错误:@typescript Eslint/parser设置了“parserOptions.project”。该文件与您的项目配置不匹配:.eslintrc.js。该文件必须至少包含在一个项目中provided@dz1002这是因为@typescript eslint/eslint插件试图在
.eslintrc.js
文件上使用类型感知规则,因此需要一个typescript项目。您可以为该文件禁用这些规则,或者为ESLint添加一个tsconfig,其中包含“***.ts”、“***.js”]
和“
“allowJs”:true
@dz1002非常感谢!我不明白为什么eslint会抱怨Tok,修复了我的问题。如果您的根文件夹中有以下目录:“后端”和“前端”,这将起作用:“eslint.WorkingDirectory”:[“后端”,“前端”]