gpt4 book ai didi

angular - Visual Studio Code 无法解析 Angular tsconfig 路径

转载 作者:太空狗 更新时间:2023-10-29 17:30:30 26 4
gpt4 key购买 nike

我正在尝试使用 barrels 和 tsconfigs paths 选项导入一些服务,但我无法让 angular 和 vscode 相处。

如果它对一个有效,则对另一个无效,反之亦然...

我的情况似乎很简单:

  • src/app/services 中,我有一个在 index.ts 中导出的服务
  • 我的 src/tsconfig.app.json 就是这样的:

{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": [],
"baseUrl": ".",
"paths": {
"services": ["app/services"]
}
},
"exclude": [
"test.ts",
"**/*.spec.ts"
],
}

我的 Angular 应用程序编译没有问题,但是每次我尝试从 'services' 导入我的服务时,vscode 总是给我错误,给我 [ ts] 找不到模块“服务”。

为什么?

我正在使用 typescript 3.1.6,在 vscode 设置中我有 "typescript.tsdk": "C:/Users/myuser/AppData/Roaming/npm/node_modules/typescript/lib" (我也试过保留默认设置,没有改变)


编辑:

如果我在 ./tsconfig.json 中指定 pathssrc 开始,vscode 会很高兴,但 angular 不会。

如果我在 tsconfig.jsonsrc/tsconfig.app.json 中都指定了 paths,那么 vscode 和 angular 都很满意,但是对我来说这似乎是一个太愚蠢的解决方法......

最佳答案

我想通了,即使我一直认为这很荒谬...

VsCode 自动查找 tsconfig.json 文件,它不关心 tsconfig.app.json,所以 paths 需要在 tsconfig.json 中指定。

同时,angular-cli脚手架在tsconfig.app.json中指定了一个baseUrl参数,覆盖了上面的参数。

解决方案是删除 tsconfig.app.json 中的 baseUrl 参数将其值编辑为"../"

(作为个人评论,鉴于 vscode 主要用于构建 Angular 解决方案,我认为在 angular-cli 脚手架或 vscode 如何查找 tsconfig 文件中应该重新审视一些东西)

关于angular - Visual Studio Code 无法解析 Angular tsconfig 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53173306/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com