Heroku无法启动我的节点应用程序,因为它试图用nodemon来完成它

我正在部署我的节点应用程序到Heroku,它试图用nodemon而不是我定义的node app.js调用它。 我的Procfile如下所示:

 web: npm start 

而当我推到heroku测功机崩溃与此错误:

 2014-03-24T19:24:59.669412+00:00 app[web.1]: > my-app@0.0.1 start /app 2014-03-24T19:24:59.669412+00:00 app[web.1]: > nodemon app.js 2014-03-24T19:24:59.669412+00:00 app[web.1]: 2014-03-24T19:24:59.669412+00:00 app[web.1]: 2014-03-24T19:24:59.710228+00:00 app[web.1]: 2014-03-24T19:24:59.701246+00:00 app[web.1]: sh: nodemon: not found 

我甚至尝试npm安装nodemon作为package.json依赖项,并检查node_modules / nodemon,但没有运气。 (nodemon需要安装npm install nodemon -g才能正常工作)

有任何想法吗?

我的package.json:

 { "name": "my-app", "version": "0.0.1", "private": true, "main": "app.js", "scripts": { "start": "node app.js" }, "dependencies": { "requirejs": "~2.1.10", "underscore": "~1.5.2", "express": "~3.4.8", "ejs": "~0.8.5", "less-middleware": "~0.1.15", "socket.io": "~0.9.16", "tail": "~0.3.5", "async": "~0.2.10", "mongoose": "~3.8.5", "mkdirp": "~0.3.5", "ejs-locals": "~1.0.2", "aws-sdk": "~2.0.0-rc8", "knox": "~0.8.8", "connect-multiparty": "~1.0.3", "uuid": "~1.4.1", "nodemon": "~1.0.14" }, "devDependencies": { "grunt": "~0.4.2", "grunt-contrib-clean": "~0.5.0", "grunt-contrib-copy": "~0.4.1", "grunt-contrib-requirejs": "~0.4.1", "grunt-recess": "~0.5.0", "grunt-contrib-cssmin": "~0.7.0", "grunt-mocha-test": "~0.9.0", "grunt-forever": "~0.4.1", "matchdep": "~0.3.0", "jshint": "~2.4.3", "precommit-hook": "~0.3.10", "mocha": "~1.17.1", "supertest": "~0.9.0", "chai": "~1.9.0", "sinon": "~1.8.2", "karma-sinon": "~1.0.2", "karma-script-launcher": "~0.1.0", "karma-chrome-launcher": "~0.1.2", "karma-firefox-launcher": "~0.1.3", "karma-requirejs": "~0.2.1", "karma-html2js-preprocessor": "~0.1.0", "karma-jasmine": "~0.1.5", "karma-coffee-preprocessor": "~0.1.3", "karma-phantomjs-launcher": "~0.1.2", "karma": "~0.10.9", "karma-mocha": "~0.1.1", "grunt-karma": "~0.6.2", "karma-chai": "~0.1.0" }, "config": { "precommit": { "lint": true } }, "engines": { "node": "0.10.x" } } 

更新

对不起,让所有这些人都挂了! 如果我没有记错的话,最后我的问题是我的构build包在我的Procfile中覆盖了web:angular色。

我已经切换到不同的buildpack,即:ddollar / heroku-buildpack-multi

使用以下.buildpacks文件:

 ryandotsmith/nginx-buildpack heroku/heroku-buildpack-nodejs 

我的Procfile看起来像这样:

 web: bin/start-nginx ./node_modules/.bin/forever --minUptime 10000 --spinSleepTime 1000 app.js 

改变你的Procfile到这个:

 web: node app.js 

作为app.js的入口点到您的应用程序。

假设你在你的应用中并不需要nodemon ,因为你已经在你提供的package.json示例中列出了它。

我知道OP得到了答案,但我想我可能会分享什么对我有用,在一个稍微不同的senario:

Procfile包含以下内容:

 web: npm start 

对于我定义的package.json文件:

 "scripts":{ "start": "node ./bin/www" } 

这就解决了这个问题。