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
Node.js nodemon:在heroku上部署时权限被拒绝_Node.js_Heroku_Logging_Permissions - Fatal编程技术网

Node.js nodemon:在heroku上部署时权限被拒绝

Node.js nodemon:在heroku上部署时权限被拒绝,node.js,heroku,logging,permissions,Node.js,Heroku,Logging,Permissions,使用Heroku部署时,我的日志中出现以下错误,我该怎么办 我的procfile: web: node bin/www web: node bin/www Mypackage.json: { "name": "express-generator", "version": "0.0.0", "private": true, "scripts": { &

使用Heroku部署时,我的日志中出现以下错误,我该怎么办

我的
procfile

web: node bin/www
web: node bin/www
My
package.json

{
  "name": "express-generator",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "start": "./node_modules/.bin/nodemon.cmd  ./bin/www"
  },
  "dependencies": {
    "config": "^3.3.1",
    "cookie-parser": "~1.4.4",
    "cors": "^2.8.5",
    "debug": "~2.6.9",
    "express": "~4.16.1",
    "http-errors": "~1.6.3",
    "jsonwebtoken": "^8.5.1",
    "mongoose": "^5.9.29",
    "morgan": "~1.9.1",
    "passport": "^0.4.1",
    "passport-jwt": "^4.0.0",
    "passport-local": "^1.0.0",
    "passport-local-mongoose": "^6.0.1",
    "pug": "^3.0.0"
  },
  "devDependencies": {
    "nodemon": "^2.0.4"
  }
}

在“生产”中不应该使用nodemon,而应该使用node。同样在您的
package.json
nodemon被声明为一个dev依赖项,因此它不会通过npm安装在heroku实例上,因为我认为
npm安装--production
将由heroku执行,所以如果您在开始脚本中调用它,它将找不到它

  • 将package.json中的npm脚本“start”编辑为
    “start”:“node index.js”
    ,例如,如果index.js是您的入口点。因为heroku在默认情况下会使用启动脚本来启动程序

  • 您还可以添加一个脚本“dev”,以便在您的开发环境中使用nodemon
    “dev”:“nodemon index.js”
    例如,如果index.js是您的入口点,那么您可以通过在终端中键入
    npm run dev
    来启动带有nodemon的应用程序


Nodemon是一种开发工具,不应用于生产:

Nodemon是一个实用程序,它将监视源代码中的任何更改,并自动重新启动服务器。非常适合发展

对于Node.js项目,如果Heroku找不到
Procfile
,它默认运行
start
脚本。您的
start
脚本是

"./node_modules/.bin/nodemon.cmd  ./bin/www"
看起来您正试图使用Node.js而不是Nodemon,方法是将其放入
程序文件中:

web: node bin/www
web: node bin/www
但该文件的名称似乎不正确。资本
P
很重要。将其重命名为
Procfile
,例如通过运行
git mv Procfile Procfile
。然后提交更改并重新部署


请注意,您也可以像Heroku那样使用该命令在本地运行应用程序,以确保您的
Procfile
正在执行它应该执行的操作。

。它们不能被搜索或复制,可用性差。相反,将代码作为文本直接粘贴到问题中。如果选择它并单击
{}
按钮或Ctrl+K,代码块将缩进四个空格,这将使其呈现为代码。您不应该在Heroku上使用
nodemon
。这是一个开发工具,而不是应该在生产中使用的东西。但是什么是
nodemon.cmd
?那是窗户的东西吗?Heroku不运行Windows。请回答您的问题,并向我们展示您的
package.json
,如果您有
Procfile
,我已经编辑了我的问题。这是一个学校项目,所以我必须和heroku和nodjs一起做。当我把它改为nodemon(不带.cmd)时,它只是nodemon:not found。“它只是nodemon:not found”-在Windows或heroku上?无论如何,我认为你的问题是另外一回事。我会补充一个答案。