现有Angular 15.1.4项目安装Angular Universal时提示tsconfig.server.json不存在
问题原因及解决方案
为什么会出现这个错误?
- 你只是手动安装了@nguniversal的依赖包,但Angular SSR需要的配置文件、入口文件(比如tsconfig.server.json、server.ts)以及项目配置修改,单纯靠
npm install是不会自动生成的。Angular CLI提供了专门的初始化命令来完成这些步骤,跳过这个流程就会缺失必要文件。 - 另外你安装的@nguniversal版本(15.2.0)和项目Angular版本(15.1.4)小版本不匹配,也可能导致后续初始化或运行时的兼容性问题。
解决办法
方法一:用Angular CLI重新初始化SSR(推荐)
- 先卸载已安装的不匹配版本:
npm uninstall @nguniversal/express-engine @nguniversal/builders
- 安装和Angular版本匹配的@nguniversal包,用CLI的add命令自动生成所有必要文件和配置:
ng add @nguniversal/express-engine@15.1.4
这个命令会自动创建tsconfig.server.json、server.ts,修改angular.json的构建配置,添加SSR相关的npm脚本,一步到位。
方法二:手动补全必要文件(不推荐,容易遗漏配置)
如果你不想用CLI命令,需要手动创建以下内容:
- 在项目根目录创建
tsconfig.server.json,内容参考:
{ "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./dist/out-tsc/server", "target": "es2020", "types": ["node"] }, "files": [ "src/main.server.ts", "server.ts" ], "angularCompilerOptions": { "entryModule": "./src/app/app.server.module#AppServerModule" } }
- 同时需要创建
server.ts、src/main.server.ts、src/app/app.server.module.ts等文件,并修改angular.json添加服务端的构建和服务配置。但这种方式容易出错,除非你熟悉Angular SSR的配置细节,否则优先用CLI命令。
内容的提问来源于stack exchange,提问作者Sameera
相关产品推荐
相关产品推荐

