Heroku部署Node.js应用报错:无法找到express模块
解决部署Node.js应用时的"Cannot find module 'express'"错误
问题分析
从错误日志来看,部署环境无法找到express模块——尽管你的package.json已将express列为依赖项,核心原因是部署过程中依赖包未被正确安装。
修复步骤
移除冗余依赖:你的
dependencies里包含了node包,这完全多余——Node.js是运行环境,不需要作为项目依赖安装。删除这一行,避免安装流程出现异常:"node": "^18.5.0" // 删掉该行修正启动脚本参数:
start脚本中的--ext js是nodemon专属参数,node命令无法识别,会导致启动异常,修改为:"start": "node index.js"提交依赖锁定文件:在本地执行
npm install生成package-lock.json,将该文件与package.json一同提交到Git仓库。锁定文件能让部署环境精确安装与本地一致的依赖版本,规避版本兼容问题。检查Git忽略规则:确认
.gitignore没有错误忽略package.json或package-lock.json,但要保证node_modules处于忽略状态(本地依赖无需上传,由部署环境自行安装)。排查构建日志:登录Heroku控制台查看应用构建日志,确认
npm install步骤是否成功执行。若存在安装失败提示,根据具体信息排查(如网络问题、依赖版本不兼容等)。
额外修正
你的dev脚本存在语法错误,缺少闭合单引号,修正后:
"dev": "nodemon index.js --exec 'npm start -s'"
内容的提问来源于stack exchange,提问作者Himanshu Kumar
相关产品推荐
相关产品推荐

