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

部署Node项目至Heroku时遭遇模块错误,如何解决?

解决Heroku部署时npm ci依赖版本不匹配问题

问题场景

修改了package.json中的Node版本,删除package-lock.json后重新执行npm install,但部署到Heroku时触发npm ci报错,提示锁文件与package.json依赖版本不同步,具体错误如下:

正在安装Node模块
npm ERR! code EUSAGE
npm ERR! 
npm ERR! `npm ci`仅能在package.json与package-lock.json或npm-shrinkwrap.json同步时安装依赖。请先执行`npm install`更新锁文件后再继续。
npm ERR! 
npm ERR! 无效:锁文件中的type-fest@0.21.3不满足type-fest@0.13.1的要求
npm ERR! 锁文件中缺少:type-fest@0.21.3
npm ERR! 
npm ERR! 项目干净安装
npm ERR! 
npm ERR! 使用方法:
npm ERR! npm ci
npm ERR! 
npm ERR! 选项:
npm ERR! [--no-audit] [--foreground-scripts] [--ignore-scripts]
npm ERR! [--script-shell <script-shell>]
npm ERR! 
npm ERR! 别名:clean-install, ic, install-clean, isntall-clean
npm ERR! 
npm ERR! 执行"npm help ci"获取更多信息

npm ERR! 本次运行的完整日志可在以下位置查看:
npm ERR!     /tmp/npmcache.EX2Wa/_logs/2022-07-15T17_34_47_694Z-debug-0.log
-----&gt; 构建失败

很抱歉本次构建失败!你可以排查常见问题获取帮助。

若遇到困难,请提交工单获取帮助。

爱你的,
Heroku

!     推送被拒绝,Node.js应用编译失败。
!     推送失败

修复步骤

  • 彻底清理本地依赖残留
    删除node_modules文件夹和现有package-lock.json,执行命令:
    # macOS/Linux
    rm -rf node_modules package-lock.json
    
    # Windows
    rmdir /s /q node_modules && del package-lock.json
    
  • 切换到指定Node版本
    使用版本管理工具(如nvm)切换到package.json中engines.node字段指定的Node版本,确保本地环境与部署环境版本一致
  • 重新生成同步的锁文件
    执行npm install,此时生成的package-lock.json会与当前Node版本、package.json的依赖完全同步
  • 验证依赖版本
    打开package-lock.json搜索type-fest,确认版本为0.13.1,无版本冲突项
  • 提交并重新部署
    将更新后的package.json和package-lock.json一起提交到Git仓库,再推送到Heroku

如果上述步骤无效,可手动锁死依赖版本:

npm install type-fest@0.13.1 --save-exact

执行完成后再次运行npm install更新锁文件,再提交部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:57:40