Angular项目执行ng serve遇报错,执行npm audit fix --force后仍有异常
解决Angular项目运行的系列错误
第一步:修复"digital envelop routines::unsupported"错误(替代临时方案)
不用降级Node或使用--legacy-peer-deps,直接在启动命令中添加OpenSSL兼容参数:
- 在package.json的scripts里修改start命令(Mac/Linux):
"scripts": { "start": "NODE_OPTIONS=--openssl-legacy-provider ng serve" } - Windows系统使用:
"scripts": { "start": "set NODE_OPTIONS=--openssl-legacy-provider && ng serve" }
该方法既规避安全风险,又解决Node版本兼容问题。
第二步:修复"Workspace extension with invalid name (defaultProject) found"错误
这个错误是npm audit fix --force强制升级包时破坏了Angular workspace配置结构导致的,重点检查angular.json:
- 打开根目录下的
angular.json,找到defaultProject字段:- 它应该放在配置文件的最外层,而非某个扩展节点下,正确结构示例:
{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "defaultProject": "your-project-name", "projects": { "your-project-name": { ... } } }
- 它应该放在配置文件的最外层,而非某个扩展节点下,正确结构示例:
- 若
defaultProject被错误放置在cli或其他节点下,将其移至最外层。 - 确认
defaultProject的值与projects下的项目名称完全一致(包括大小写)。 - 若
angular.json损坏严重,可从备份恢复,或重新生成基础配置。
额外注意事项
- 避免随意使用
npm audit fix --force,Angular对依赖版本兼容性要求严格,强制升级易引发配置或依赖冲突。 - 后续升级依赖优先使用Angular官方工具
ng update,它会自动处理兼容性:ng update @angular/core @angular/cli
内容的提问来源于stack exchange,提问作者MaxPet
相关产品推荐
相关产品推荐

