Angular从10升级至12后Angular Universal构建触发TypeScript编译报错
解决方案
这个问题是Angular 12默认启用更严格的TypeScript编译校验、ivy加载器对服务端入口校验逻辑调整导致的,按以下步骤修复即可:
- 打开服务端构建专属的TS配置文件,通常是项目根目录下的
tsconfig.server.json - 检查
files字段,确认已显式添加server.ts作为编译入口,示例配置如下:
{ "extends": "./tsconfig.app.json", "compilerOptions": { "outDir": "./out-tsc/server", "target": "es2019", "types": ["node"] }, "files": [ "src/main.server.ts", "server.ts" ], "include": [ "src/**/*.d.ts" ] }
- 检查
include字段,不要把客户端业务组件的路径加进去,仅保留服务端需要的类型声明文件路径,即可消除「属于TypeScript编译范围但未被使用」的提示 - 打开
angular.json,找到对应项目的architect > server > options配置,确认tsConfig字段指向的是你调整过的tsconfig.server.json - 清理构建缓存后重新执行服务端构建即可:
rm -rf node_modules/.cache npm run build:ssr
内容的提问来源于stack exchange,提问作者Behnam Aminazad
相关产品推荐
相关产品推荐

