Angular项目安装file-saver遇ERESOLVE依赖冲突求助
解决npm安装FileSaver.js时的ERESOLVE依赖冲突问题
问题梳理
- 执行
npm i file-saver触发npm ERESOLVE依赖解析错误 - 初始冲突:
@angular-devkit/build-angular@18.2.11的peerOptional依赖要求@angular/localize@^18.0.0,但项目中@ng-bootstrap/ng-bootstrap@18.0.0依赖的是@angular/localize@19.0.6,版本不兼容 - 更新依赖后新冲突:
@angular/localize@19.0.6要求peer依赖@angular/compiler@19.0.6,但当前项目使用的是@angular/compiler@19.1.3,版本不匹配
可行解决方案
方案1:统一Angular生态依赖版本到19.x兼容版(推荐)
这是最稳妥的长期解决方案,确保所有Angular相关依赖版本对齐:
- 更新
@angular-devkit/build-angular到与Angular 19兼容的版本:npm install @angular-devkit/build-angular@^19.1.0 --save-dev - 将
@angular/localize升级到与当前@angular/compiler一致的19.1.3版本:npm install @angular/localize@^19.1.3 --save - 重新安装FileSaver.js:
npm i file-saver
方案2:临时绕过依赖校验(仅适用于测试场景)
如果只是临时测试功能,可以用npm的参数跳过peer依赖冲突检查,但不建议生产环境使用:
npm i file-saver --legacy-peer-deps
注意:该操作会忽略peer依赖版本要求,可能引发运行时未知问题
方案3:降级Angular核心版本到19.0.6
如果暂时不想升级构建工具,可以将Angular核心依赖降级到匹配@angular/localize@19.0.6的版本:
npm install @angular/compiler@19.0.6 @angular/core@19.0.6 @angular/common@19.0.6 @angular/platform-browser@19.0.6 --save
需根据项目实际使用的Angular核心包补充完整降级列表
- 完成降级后重新安装FileSaver.js:
npm i file-saver
验证步骤
- 执行
npm ls查看依赖树,确认无版本冲突提示 - 运行项目构建命令(如
ng build)验证编译是否正常 - 测试FileSaver.js的功能是否能正常运行
内容的提问来源于stack exchange,提问作者parascus
相关产品推荐
相关产品推荐

