You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行ng update升级Angular到13,部分包却升至16的问题咨询

问题

执行 ng update @angular/core@13 @angular/cli@13 命令后,部分依赖包被意外升级到了16.x版本,和预期的13.x版本不符。当前环境为Node v16.20.2、npm v8.19.4,不确定Node版本是否影响该问题。

初始依赖版本:
初始版本截图

升级后依赖版本:
升级后版本截图

可能原因
  1. npm依赖解析逻辑:npm v8.x处理peer依赖时,会优先选择满足版本范围的最新可用版本。如果项目中部分包的peer依赖声明允许兼容更高版本(比如写了>=13),就会被自动拉取到16.x这类符合条件的最高版本。
  2. 依赖版本未锁定:若package.json里的依赖版本使用^或~前缀(比如^13.0.0),ng update触发依赖更新时,npm会判定16.x也在兼容范围内,直接安装最新版。
  3. Node v16.x本身满足Angular 13到16的版本要求,不是直接诱因,但npm版本的解析规则是核心影响因素。
已验证的解决方案

通过手动指定版本并强制安装,将依赖锁定到目标版本:

  • 对Angular相关包逐个执行:
    npm i @angular/animations@14.3.0 --force
    npm i @angular/common@14.3.0 --force
    # 其他如@angular/core、@angular/cli等包同理,指定需要的版本
    
  • 同步更新ESLint相关工具包:
    npm i @typescript-eslint/eslint-plugin@对应版本 --force
    npm i @typescript-eslint/parser@对应版本 --force
    npm i eslint-plugin-unicorn@对应版本 --force
    

内容的提问来源于stack exchange,提问作者Jmainol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 23:45:13