Angular 16:无法在tsconfig.app.json中覆盖baseUrl的问题咨询
解决Angular多项目工作区子项目tsconfig.app.json baseUrl不生效的问题
1. 修正子项目tsconfig.app.json的配置
确保projects/my-app/tsconfig.app.json正确继承根配置,并设置符合路径逻辑的baseUrl:
{ "extends": "../../tsconfig.json", "compilerOptions": { "baseUrl": "./src", // 相对于当前tsconfig文件的位置,直接指向my-app的src目录 "outDir": "../../out-tsc/app", "types": [] }, "files": [ "src/main.ts", "src/polyfills.ts" ], "include": [ "src/**/*.d.ts", "src/**/*.ts" ] }
这里baseUrl: "./src"是核心,因为tsconfig.app.json位于projects/my-app/目录下,./src正好对应projects/my-app/src,这样import { environment } from 'environments/environment'就能被正确解析。
2. 启动服务时明确指定目标项目
运行ng serve时必须指定子项目名称,避免CLI错误加载根目录或其他项目的配置:
ng serve my-app
3. 修复VS Code的TypeScript服务器识别问题
VS Code默认优先读取根目录的tsconfig.json,导致子项目配置不生效,可以通过两种方式解决:
- 直接打开子项目目录:在VS Code中打开
projects/my-app文件夹而非工作区根目录,TS服务器会自动加载该目录下的tsconfig.app.json。 - 配置工作区设置:在根目录的
.vscode/settings.json中添加以下配置,指定子项目的tsconfig路径:
{ "typescript.tsdk": "./node_modules/typescript/lib", "typescript.tsconfigPaths": [ "./projects/my-app/tsconfig.app.json" ] }
添加完成后,按下Ctrl+Shift+P选择"TypeScript: Restart TS Server"重启服务。
4. 清理Angular缓存
缓存可能导致配置未及时生效,执行以下命令清理后重新启动服务:
ng cache clean ng serve my-app
内容的提问来源于stack exchange,提问作者Wolf359
相关产品推荐
相关产品推荐

