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

Heroku部署Node.js服务报错:nodemon: not found问题求助

解决Heroku部署Node.js服务时nodemon未找到的问题

问题根源
Heroku默认仅安装package.json中dependencies字段的依赖,nodemon作为本地开发热重载工具,通常属于开发依赖范畴,不会在生产环境被安装;而你的start脚本指定用nodemon启动服务,导致Heroku运行时找不到该命令。

解决方案

  • 修正启动脚本与依赖配置
    生产环境无需使用nodemon,直接用node命令启动项目入口文件(你的项目入口是index.js),同时将nodemon添加到开发依赖中,修改后的package.json如下:

    {
      "name": "backend",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "type": "module",
      "scripts": {
        "start": "node index.js", // 替换原nodemon启动命令
        "dev": "nodemon index.js", // 新增本地开发专用脚本
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "dependencies": {
        "cors": "^2.8.5",
        "dotenv": "^16.0.1",
        "express": "^4.18.1",
        "mongodb": "^4.8.0"
      },
      "devDependencies": {
        "nodemon": "^2.0.19" // 将nodemon标记为开发依赖
      },
      "engines":{
        "node":"14.x"
      }
    }
    
  • 安装依赖并重新部署
    本地执行命令安装开发依赖:

    npm install --save-dev nodemon
    

    提交修改到Git仓库后,重新部署到Heroku即可。

补充说明

  • 本地开发时使用npm run dev启动服务,可享受代码热重载;生产环境Heroku会自动执行npm start,用node直接启动服务,避免依赖缺失问题。
  • 确认项目入口文件为index.js(该文件负责MongoDB连接与服务启动),因此node index.js是正确的生产启动命令。

内容的提问来源于stack exchange,提问作者Aziz Rezgui

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 22:18:27