Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在heroku上部署节点应用程序引发与nodemon相关的错误_Node.js_Heroku_Nodemon - Fatal编程技术网

Node.js 在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

我试图在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"
  }
"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应用程序上作为开发环境运行!