首页 > 解决方案 > nodemon:在heroku上部署时权限被拒绝

问题描述

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

我的procfile

web: node bin/www

我的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"
  }
}

标签: node.jsherokuloggingpermissions

解决方案


您不应该在“生产”中使用 nodemon,而只是 node. 同样在您的package.jsonnodemon 中被声明为开发依赖项,因此无论如何它都不会通过 npm 安装在您的 heroku 实例上,因为我认为npm install --production它将由 heroku 执行,因此如果您在启动脚本中调用它,它将找不到它。

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

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


推荐阅读