Angular 4项目执行npm install失败,遇依赖版本匹配错误
解决Angular 4项目npm install的报错问题
咱们一步一步来搞定这个问题,先处理导致安装失败的核心错误,再解决那些警告提示:
1. 修复ETARGET: No matching version found for @agm/core@^5.0.0-beta.1错误
这个错误是关键——你指定的@agm/core版本和Angular 4完全不兼容,而且这个版本大概率已经被移除或者从未存在过。AGM(Angular Google Maps)的版本和Angular版本是严格绑定的:
- Angular 4只能搭配**@agm/core 1.x系列**的版本,5.x版本是给Angular 8及以上版本设计的。
解决步骤:
- 打开你的
package.json,找到@agm/core的依赖项,把版本号从^5.0.0-beta.1改成^1.0.0-beta.7(这个版本经过验证,能完美适配Angular 4) - 或者直接在终端执行命令安装兼容版本:
npm install @agm/core@^1.0.0-beta.7 --save - 如果还是遇到版本查找问题,先清理npm缓存再重试:
npm cache clean --force npm install
2. 处理过时依赖的警告
这两个警告不会阻止安装,但长期来看还是建议处理:
针对nodemailer@2.7.2过时
- 如果
nodemailer是你的项目直接依赖,直接升级到4.0.1及以上版本:npm install nodemailer@^4.0.1 --save - 如果它是某个第三方依赖的子依赖,你可以暂时忽略这个警告;要是追求完美,也可以用
npm-force-resolutions工具强制升级,但Angular 4项目要谨慎操作,避免破坏依赖链。
针对node-uuid@1.4.8过时
- 如果
node-uuid是你的直接依赖,卸载它并替换成官方推荐的uuid模块:npm uninstall node-uuid --save npm install uuid --save - 如果是子依赖,暂时忽略也没问题;或者在
package.json里添加resolutions字段强制替换:
然后执行"resolutions": { "node-uuid": "uuid" }npm install即可。
最后,确保你的npm源是正常的,有时候源的问题也会导致版本查找失败:
npm config set registry https://registry.npmjs.org/
内容的提问来源于stack exchange,提问作者cristian franco
相关产品推荐
相关产品推荐

