在Heroku上部署Node App引发与NodeMon相关的错误

时间:2018-12-16 21:47:29

标签: node.js heroku nodemon

我正在尝试在heroku中运行我的节点应用程序,但是出现了与nodemon依赖相关的错误。

2018-12-16T21:32:51.891208+00:00 app[web.1]: sh: 1: nodemon: not found
2018-12-16T21:32:51.895084+00:00 app[web.1]: npm ERR! file sh
2018-12-16T21:32:51.895380+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2018-12-16T21:32:51.895627+00:00 app[web.1]: npm ERR! errno ENOENT
2018-12-16T21:32:51.895865+00:00 app[web.1]: npm ERR! syscall spawn
2018-12-16T21:32:51.896987+00:00 app[web.1]: npm ERR! turktutor_backend@1.0.0 start: `nodemon --watch`
2018-12-16T21:32:51.897151+00:00 app[web.1]: npm ERR! spawn ENOENT

我有这样的package.json:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon --watch"
  },
"dependencies": {
    "bcrypt": "^3.0.2",
    "body-parser": "^1.18.3",
    "express": "^4.16.4",
    "express-validator": "^5.3.0",
    "googleapis": "^27.0.0",
    "jsonwebtoken": "^8.4.0",
    "mongoose": "^5.3.14",
    "mongoose-unique-validator": "^2.0.2",
    "nodemailer": "^4.7.0"
  },
  "devDependencies": {
    "morgan": "^1.9.1",
    "nodemon": "^1.18.7"
  }

我尝试遵循此link中需要更改“ Procfile”文件的解决方案,但是heroku说Node.js应用程序source

不再需要Procfile

我想知道是否需要通过一些命令将devDependencies安装在heroku服务器中!

所以请帮忙解决这个问题?

2 个答案:

答案 0 :(得分:2)

我认为默认情况下,heroku仅安装非开发依赖项,因此未找到nodemon。您可以在heroku仪表板上定义环境变量,但是我认为它不会安装dev依赖项。在生产中,您不需要nodemon,您的想法是什么?

答案 1 :(得分:0)

我发现heroku默认在生产环境中运行,因此它不会安装dev依赖项,因此我在package.json中创建了两个不同的npm脚本脚本,如下所示:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node index.js",
    "start:dev": "nodemon --watch"
},

,当我想在本地运行项目时,我运行npm run start:dev以便它通过nodemon加载index.js,而在heroku npm start中则默认运行并从普通的node命令加载index.js。