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

ExpressJS部署到Heroku执行git push heroku master出现bcrypt报错如何解决?

解决方案
  • 首先排除node_modules误提交问题
    检查项目根目录是否存在.gitignore文件,无则新建,写入node_modules/规则。执行以下命令清除git中已缓存的node_modules文件:
    git rm -r --cached node_modules
    
    提交变更后再进行后续部署操作。
  • 补充package.json的缺失配置
    在package.json中添加engines字段指定Node.js与npm版本,与你本地开发环境版本保持一致即可,示例配置如下:
    "engines": {
      "node": "14.x",
      "npm": "6.x"
    }
    
    同时修改scripts下的start配置,生产环境无需使用nodemon,改为:
    "start": "node server.js"
    
    注意匹配入口文件的大小写,避免启动时找不到文件报错。
  • 替换存在编译依赖的bcrypt库
    bcrypt需要原生编译,在服务器环境容易出现权限、依赖缺失问题,可以替换为纯JS实现的bcryptjs,两者API完全兼容无需修改业务逻辑:
    1. 卸载原有bcrypt:npm uninstall bcrypt
    2. 安装bcryptjs:npm install bcryptjs
    3. 代码中所有require('bcrypt')的引入语句替换为require('bcryptjs')
  • 清除Heroku构建缓存后重新部署
    执行以下命令清除历史构建缓存避免旧依赖干扰:
    heroku builds:cache:purge -a 替换为你的Heroku应用名称
    
    完成上述所有操作后重新执行git push heroku master即可。

内容的提问来源于stack exchange,提问作者melek hedhili

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 15:30:03