Angular 19 SSR设置prerender: false启动报错问题求助
Angular 19 SSR启动报错解决方案(禁用预渲染场景)
问题复现
构建启用SSR且配置"prerender": false的Angular 19应用后,执行node dist/app_name/server/server.mjs启动时出现错误:
Error: Angular app engine manifest is not set. Please ensure you are using the '@angular/build:application' builder to build your server application.
server文件夹中已存在manifest文件,核心需求为使用SSR但禁用预渲染(避免构建阶段触发API调用)。
排查与解决方案
检查angular.json构建配置
确保server目标使用@angular/build:application构建器,并正确关联manifest路径:{ "projects": { "app_name": { "architect": { "server": { "builder": "@angular/build:application", "options": { "outputPath": "dist/app_name/server", "main": "src/main.server.ts", "tsConfig": "tsconfig.server.json", "manifest": "dist/app_name/server/manifest.json", "prerender": false, "ssr": true } } } } } }使用正确的构建命令
优先执行完整的构建流程,避免分步构建导致的文件关联异常:ng build --configuration production --ssr --prerender=false若需分步构建,确保先完成客户端构建,再执行服务器构建:
ng build ng build --configuration production --server验证manifest文件有效性
打开dist/app_name/server/manifest.json,确认包含核心字段:{ "engine": "angular-server", "version": "19.0.0", "routes": [] }若文件内容异常,删除
dist目录后重新构建。确认启动命令路径正确性
确保执行启动命令时的工作目录正确,或使用绝对路径指向server.mjs:node ./dist/app_name/server/server.mjs
内容的提问来源于stack exchange,提问作者Дмитрий Комов
相关产品推荐
相关产品推荐

