将Node引擎从10x升级到14x后出现依赖安装及废弃警告求助
Node 10→14升级后依赖问题解决方案
核心问题:依赖版本严重不匹配
你的package.json中Angular核心包版本混乱(@angular/core是15.2.8,但其余Angular包如animations/common都是8.2.10),同时Nx、Schematics等工具版本与Angular版本不兼容,这是所有问题的根源,需优先修复。
一、修复Angular依赖版本一致性
- 统一Angular包版本
打开package.json,将所有@angular/*包版本统一为8.2.10(与Node 14兼容):"@angular/core": "^8.2.10", "@angular/animations": "^8.2.10", "@angular/common": "^8.2.10", "@angular/compiler": "^8.2.10", "@angular/forms": "^8.2.10", "@angular/platform-browser": "^8.2.10", "@angular/platform-browser-dynamic": "^8.2.10", "@angular/router": "^8.2.10" - 降级配套工具版本
- 将
@nrwl/angular降级为适配Angular 8的版本(如^8.12.11) - 将
@schematics/angular降级为^8.3.29 - 将
ngx-markdown降级为支持Angular 8的版本(如^8.0.0)
- 将
- 移除废弃依赖
删除@angular/http(Angular 4+已弃用,改用@angular/common/http),并在项目中替换为HttpClientModule。
二、解决defaultProject废弃警告
编辑angular.json,删除顶层的"defaultProject"字段:
{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, // 删掉这一行:"defaultProject": "your-project-name", "projects": { ... } }
新版本Angular CLI会自动根据当前工作目录识别项目,无需该配置。
三、处理postinstall日志与可选依赖警告
postinstall日志
esbuild/nx/core-js的postinstall脚本是正常执行日志,不属于错误:esbuild的install.js是安装对应平台的二进制文件nx的compute-project-graph是生成项目依赖图core-js的脚本是提示相关信息
若想抑制日志,可执行:
npm install --silent但不建议长期使用,避免错过重要错误提示。
可选依赖跳过警告
这些是针对非当前平台(如Android ARM)的可选依赖,Windows x64环境下跳过是正常现象,无需处理。若要隐藏警告,可执行:npm install --no-optional注意:此操作会跳过所有可选依赖,仅在确认无功能影响时使用。
四、清理依赖并重新安装
- 删除旧依赖文件:
# Windows rd /s /q node_modules del package-lock.json yarn.lock # Linux/macOS rm -rf node_modules rm package-lock.json yarn.lock - 重新安装依赖(不要同时混用npm和yarn):
npm install
额外注意
- Node 14兼容Angular 8~14,若要升级到Angular 15,需将Node版本提升至16+
- 第三方库如
ng-zorro-antd@7.5.1仅支持Angular 7/8,如需升级Angular,需同步升级该库至对应版本
内容的提问来源于stack exchange,提问作者sonal
相关产品推荐
相关产品推荐

