Angular Universal本地SSR启动报错:package.json不存在
解决Angular SSR启动时找不到dist/package.json的问题
看起来你在启动Angular SSR应用时遇到了路径指向错误的问题,报错提示找不到/Users/imade/nubuwah/dist/package.json,这大概率是因为serve:ssr脚本的路径配置不正确。下面是具体的排查和解决步骤:
1. 检查并修正package.json中的serve:ssr脚本
首先打开你的package.json,找到scripts里的serve:ssr命令。默认情况下,Angular SSR构建后,server.js和对应的package.json会生成在dist/[你的项目名称]目录下,而不是dist根目录。
根据你的项目名称nubuwah,你需要把serve:ssr的路径修改为:
"serve:ssr": "node dist/nubuwah/server.js"
2. 确认angular.json中的输出路径配置
打开angular.json,检查projects.nubuwah.architect.build.options.outputPath的值,应该是dist/nubuwah(这是Angular CLI默认的项目输出路径)。同时,projects.nubuwah.architect.server.options.outputPath需要和build的输出路径保持一致,确保构建产物都生成在同一个目录下。
3. 重新执行构建并启动
修改完配置后,先清理之前的构建产物:
rm -rf dist/
然后重新执行SSR构建:
npm run build:ssr
最后启动SSR服务:
npm run serve:ssr
额外排查点
- 如果执行
build:ssr时本身就有报错,先解决构建阶段的问题,确保dist/nubuwah目录下生成了server.js和package.json文件。 - 确认你的
build:ssr脚本配置正确,应该包含构建浏览器端和服务端的命令,比如:
"build:ssr": "ng build --prod && ng run nubuwah:server:production"
按照这些步骤操作后,应该就能正常启动SSR服务了。
内容的提问来源于stack exchange,提问作者Imade
相关产品推荐
相关产品推荐

