Angular6配置SSR后本地无法常规启动问题求助
解决Angular 6 SSR配置后
ng serve报错的问题 我之前也碰到过一模一样的情况,这个报错本质是Angular CLI找不到默认要启动的项目。从你贴的angular-cli.json配置来看,你的项目名称是angular.io-example,但配置里没指定默认项目,CLI不知道该启动哪个,所以抛出了这个错误。
下面是两种快速解决的方法,任选其一就能搞定:
方法1:在配置文件里设置默认项目
打开你的angular-cli.json,在根节点(和projects同级)添加"defaultProject": "angular.io-example",修改后的核心配置结构如下:
{ "$schema": "./node_modules/@angular-devkit/core/src/workspace/workspace-schema.json", "version": 1, "newProjectRoot": "projects", "defaultProject": "angular.io-example", // 新增这一行 "projects": { "angular.io-example": { // 你的原有项目配置内容... } } }
保存后再运行npm run start,CLI就会自动识别默认项目,正常启动开发服务器了。
方法2:启动时显式指定项目名称
如果不想修改配置文件,可以直接在启动命令里指定项目名。修改package.json里的start脚本:
"scripts": { "start": "ng serve --project angular.io-example", // 其他脚本(比如SSR构建脚本)保持不变 }
之后运行npm run start就能正常启动,或者直接在终端执行ng serve --project angular.io-example也可以。
额外确认:SSR配置的完整性
为了确保SSR能正常构建,记得检查你的architect节点下是否添加了server构建目标,类似这样的配置:
"server": { "builder": "@angular-devkit/build-angular:server", "options": { "outputPath": "dist/server", "main": "src/main.server.ts", "tsConfig": "src/tsconfig.server.json" }, "configurations": { "production": { "fileReplacements": [ { "replace": "src/environments/environment.ts", "with": "src/environments/environment.prod.ts" } ] } } }
这样你既可以用ng build+ng run angular.io-example:server构建SSR产物,又能正常用ng serve启动常规开发环境。
内容的提问来源于stack exchange,提问作者jcdsr
相关产品推荐
相关产品推荐

