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

部署Node.js应用至Heroku后无法启动,提示找不到serve-index模块

解决Heroku部署Node.js应用后找不到serve-index模块的问题

别着急,这种问题我碰到过好几次,大概率是依赖管理或者部署流程的小疏漏,咱们一步步排查:

  • 先检查你的package.json依赖配置
    很多人会不小心把serve-index装到devDependencies里(用了npm install serve-index --save-dev),但Heroku在生产环境默认只会安装dependencies里的包。你打开package.json看看,把serve-index移到dependencies区块里,或者重新执行:

    npm install serve-index --save
    

    这样它就会被加到生产依赖里了。

  • 确保package.json和package-lock.json都提交到Git了
    如果你修改了package.json但没提交,Heroku拉取的还是旧版本的代码,自然不会安装新的依赖。执行下面的命令把修改推送到Heroku:

    git add package.json package-lock.json
    git commit -m "Add serve-index to production dependencies"
    git push heroku main
    
  • 别在Heroku控制台手动执行npm install
    Heroku的dyno是临时容器,手动安装的依赖会在dyno重启后消失。正确的做法是让Heroku在构建阶段自动安装依赖,也就是上面提到的,把依赖加到package.json然后推送代码,Heroku会自动处理。

  • 查看Heroku的构建日志排查问题
    如果上面的步骤都做了还是不行,用这个命令看实时日志:

    heroku logs --tail
    

    看看构建阶段有没有出现安装serve-index的记录,或者有没有npm安装失败的报错(比如网络问题、版本冲突),这些日志能帮你定位具体问题。

  • 用Heroku的默认启动命令,别手动跑node app.js
    建议在package.json的scripts里配置start命令,比如:

    "scripts": {
      "start": "node app.js"
    }
    

    然后用heroku restart重启dyno,让Heroku用这个命令启动应用,这样环境变量和依赖路径都是正确的,比手动执行更可靠。

内容的提问来源于stack exchange,提问作者Hoàng Trần

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:33:37