Node.js 在heroku上部署节点应用程序引发与nodemon相关的错误
我试图在heroku中运行我的节点应用程序,但我遇到了与nodemon依赖项相关的错误Node.js 在heroku上部署节点应用程序引发与nodemon相关的错误,node.js,heroku,nodemon,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 201
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"
}
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js",
"start:dev": "nodemon --watch"
},
我试图遵循这个需要更改Procfile文件的解决方案,但heroku说Node.js应用程序不再需要Procfile
我想知道我是否需要通过一些命令在heroku服务器中安装我的devdependences
因此,请提供任何帮助以解决此问题?默认情况下,heroku只安装非开发人员依赖项,这就是找不到nodemon的原因。您可以在heroku dashboard上定义环境变量,但是我认为它不会安装开发依赖项。在生产环境中,您不需要nodemon,您的想法是什么?默认情况下,heroku只安装非开发依赖项,这就是找不到nodemon的原因。您可以在heroku dashboard上定义环境变量,但是我认为它不会安装开发依赖项。在生产环境中,您不需要nodemon,您的想法是什么?我发现heroku默认在生产环境中运行,因此它不安装开发依赖项,因此我在我的package.json中创建了两个不同的npm脚本,如下所示:
"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"
}
"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默认运行,并从普通节点命令加载index.js。我发现heroku默认在生产环境中运行,因此它不安装开发依赖项,因此我在我的package.json中创建了两个不同的npm脚本,如下所示:
"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"
}
"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默认运行,并从普通的节点命令加载index.js。我知道,生产不需要nodemon。最好编写像:node app.js这样的启动脚本,但我想一定有办法让nodemon在heroku应用程序上作为开发环境运行!我知道你不需要nodemon来制作。最好编写像:node app.js这样的启动脚本,但我想一定有办法让nodemon在heroku应用程序上作为开发环境运行!