title: Heroku failing to start my node app because its trying to do it with nodemon
body: <p>I'm deploying my node app to Heroku and it's trying to invoke it with nodemon rather than the <code>node app.js</code> I have defined. My Procfile looks like this:</p>
  
  <pre><code>web: npm start
  </code></pre>
  
  <p>And when I push to heroku the dyno crashes with this error:</p>
  
  <pre><code>2014-03-24T19:24:59.669412+00:00 app[web.1]: &gt; my-app@0.0.1 start /app
  2014-03-24T19:24:59.669412+00:00 app[web.1]: &gt; 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
  </code></pre>
  
  <p>I even tried npm installing nodemon as a package.json dependency, and checking in node_modules/nodemon but no luck. (nodemon needs to be installed with <code>npm install nodemon -g</code> for that to work anyway)</p>
  
  <p>Any ideas?</p>
  
  <p>My package.json:</p>
  
  <pre><code>{
      "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"
      }
  }
  </code></pre>
  
  <p><strong>Update</strong></p>
  
  <p>Sorry to have left everyone hanging all this time! If I remember correctly my issue in the end was my buildpack which was overriding the web: role in my Procfile.</p>
  
  <p>I've since switched to different buildpacks, namely:
  ddollar/heroku-buildpack-multi</p>
  
  <p>With the following .buildpacks file:</p>
  
  <pre><code>ryandotsmith/nginx-buildpack
  heroku/heroku-buildpack-nodejs
  </code></pre>
  
  <p>And my Procfile looks like this:</p>
  
  <pre><code>web: bin/start-nginx ./node_modules/.bin/forever --minUptime 10000 --spinSleepTime 1000 app.js
  </code></pre>