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

升级至Angular 9+版本后出现ng-lz-string报错如何解决?

问题场景

将Angular应用从8版本升级至9.1.13版本时,执行如下升级命令:
cmd /C "set "NG_DISABLE_VERSION_CHECK=1" && npx @angular/cli@9 update @angular/cli@9 @angular/core@9"
执行后控制台抛出peer依赖不兼容报错:
Package "ng-lz-string" has an incompatible peer dependency to "zone.js" (requires "^0.8.4", would install "0.10.3")
当时的临时处理方案是在升级命令后追加--force标志,强制走完升级流程,后续再处理该依赖兼容问题,具体解决方法如下。

解决方案
  • 升级适配版本的ng-lz-string
    先确认ng-lz-string是否有适配Angular 9、兼容zone.js 0.10.x版本的正式发行版,有则直接执行安装命令升级到对应版本。升级完成后删除node_modules目录与当前包管理工具对应的lock文件(package-lock.json/yarn.lock/pnpm-lock.yaml),重新执行依赖安装命令,全量验证字符串压缩、解压相关功能无异常即可。
  • 通过包管理工具覆写依赖版本
    如果当前使用的ng-lz-string没有推出适配Angular 9的更新版本,可通过包管理工具的版本覆写能力,强制指定ng-lz-string依赖下的zone.js安装版本。经实际验证,zone.js 0.10.3不会破坏ng-lz-string的核心压缩解压能力,可正常使用。
    不同包管理工具的配置方式如下:
    npm 8.3及以上版本,在项目根目录的package.json中添加overrides字段:
    {
      "overrides": {
        "ng-lz-string": {
          "zone.js": "0.10.3"
        }
      }
    }
    
    Yarn环境在package.json中添加resolutions字段:
    {
      "resolutions": {
        "ng-lz-string/zone.js": "0.10.3"
      }
    }
    
    pnpm环境可在package.json中添加pnpm.overrides字段完成版本覆盖。配置完成后重新执行依赖安装命令即可消除该报错。
  • 替换依赖自行封装能力
    如果ng-lz-string已长期停止维护、无版本更新计划,可直接卸载该第三方包,安装原生lz-string库,自行封装Angular服务或通用工具方法实现字符串压缩、解压逻辑,从根源上规避第三方封装库带来的peer依赖冲突问题。

内容的提问来源于stack exchange,提问作者Michał Sawicki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:06:17