升级至Angular 18后出现依赖冲突问题求助
升级Angular 18后npm依赖冲突问题
升级到Angular 18后,执行ng update时收到提示:
"We analyzed your package.json and everything seems to be in order. Good work!"
但运行npm i时仍出现依赖冲突(具体报错见截图),尝试多种修复方式均无效,当前依赖配置如下:
{ "private": true, "dependencies": { "@angular-devkit/core": "^18.1.0", "@angular-devkit/schematics": "^18.1.0", "@angular/animations": "^18.1.0", "@angular/common": "^18.1.0", "@angular/compiler": "^18.1.0", "@angular/core": "^18.1.0", "@angular/forms": "^18.1.0", "@angular/platform-browser": "^18.1.0", "@angular/platform-browser-dynamic": "^18.1.0", "@angular/router": "^18.1.0", "@capacitor-mlkit/barcode-scanning": "^5.3.0", "@capacitor/android": "5.4.0", "@capacitor/app": "5.0.6", "@capacitor/app-launcher": "^5.0.7", "@capacitor/browser": "^5.1.0", "@capacitor/core": "^5.7.4", "@capacitor/haptics": "5.0.6", "@capacitor/ios": "^5.4.1", "@capacitor/keyboard": "5.0.6", "@capacitor/preferences": "^5.0.6", "@capacitor/share": "^5.0.6", "@capacitor/splash-screen": "^5.0.7", "@capacitor/status-bar": "5.0.6", "@ionic/angular": "^7.0.0", "@ionic/storage-angular": "^4.0.0", "@solana-mobile/mobile-wallet-adapter-protocol": "^2.1.2", "@solana-mobile/mobile-wallet-adapter-protocol-web3js": "^2.1.2", "@solana/pay": "^0.2.5", "@solana/spl-token": "^0.4.3", "@solana/spl-token-registry": "^0.2.4574", "@solana/web3.js": "^1.91.1", "angularx-qrcode": "^17.0.1", "bignumber.js": "^9.1.2", "bootstrap": "^5.3.3", "bs58": "^5.0.0", "buffer": "^6.0.3", "crypto-js": "^4.2.0", "expo-linking": "^6.0.0", "html2canvas": "^1.4.1", "ionicons": "^7.0.0", "nanoid": "^5.0.6", "rxjs": "^7.8.0", "tslib": "^2.3.0", "tweetnacl": "^1.0.3", "zone.js": "~0.14.6" } }
解决步骤
升级不兼容的核心依赖
从依赖列表看,几个明显不兼容Angular 18的包:angularx-qrcode:当前是17.x版本,直接升级到支持Angular 18的^18.0.0@ionic/angular:Ionic 7对Angular 18支持有限,升级到Ionic 8(^8.0.0),它原生支持Angular 17+和18@ionic/storage-angular:同步升级到^4.0.1及以上版本,确保和Ionic 8、Angular 18兼容
清理缓存后重装
- 删除本地依赖文件夹和锁文件:
rm -rf node_modules package-lock.json # Mac/Linux # Windows用下面的命令 rmdir /s /q node_modules && del package-lock.json - 清理npm缓存:
npm cache clean --force - 重新安装依赖:
npm install
- 删除本地依赖文件夹和锁文件:
强制覆盖冲突依赖(如果上述步骤无效)
在package.json中添加overrides字段,强制指定冲突子依赖的版本,比如:"overrides": { "@angular/core": "^18.1.0", "rxjs": "^7.8.0" }添加后再执行
npm install即可。
内容的提问来源于stack exchange,提问作者Parse-Vader
相关产品推荐
相关产品推荐

