I get an error when pushing my node.js-app to Heroku. It used to work, but now, for some reason, it's failing.
When I push to Heroku I get the following:
-----> Node.js app detected
-----> Resolving engine versions
Using Node.js version: 0.6.13
Using npm version: 1.1.4
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
npm http GET https://registry.npmjs.org/express/2.5.9
npm http GET https://registry.npmjs.org/jade/0.15.4
npm http 200 https://registry.npmjs.org/jade/0.15.4
npm http GET https://registry.npmjs.org/jade/-/jade-0.15.4.tgz
npm http 200 https://registry.npmjs.org/express/2.5.9
npm http GET https://registry.npmjs.org/express/-/express-2.5.9.tgz
npm http 200 https://registry.npmjs.org/jade/-/jade-0.15.4.tgz
npm http 200 https://registry.npmjs.org/express/-/express-2.5.9.tgz
npm ERR! error installing jade@0.15.4
npm ERR! Refusing to delete: /tmp/build_dzqaws2o7lx4/node_modules/.bin/jade not in /tmp/build_dzqaws2o7lx4/node_modules/jade
npm ERR! File exists: /tmp/build_dzqaws2o7lx4/node_modules/.bin/jade
npm ERR! Move it away, and try again.
npm ERR!
npm ERR! System Linux 2.6.32-348-ec2
npm ERR! command "/tmp/node-node-HkEc/bin/node" "/tmp/node-npm-X5Wz/cli.js" "install" "--production"
npm ERR! cwd /tmp/build_dzqaws2o7lx4
npm ERR! node -v v0.6.13
npm ERR! npm -v 1.1.4
npm ERR! path /tmp/build_dzqaws2o7lx4/node_modules/.bin/jade
npm ERR! code EEXIST
npm ERR! message Refusing to delete: /tmp/build_dzqaws2o7lx4/node_modules/.bin/jade not in /tmp/build_dzqaws2o7lx4/node_modules/jade
npm ERR! errno {}
npm http GET https://registry.npmjs.org/connect
npm http GET https://registry.npmjs.org/mime/1.2.4
npm http GET https://registry.npmjs.org/qs
npm http GET https://registry.npmjs.org/mkdirp/0.3.0
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /tmp/build_dzqaws2o7lx4/npm-debug.log
npm not ok
! Failed to install --production dependencies with npm
! Heroku push rejected, failed to compile Node.js app
My package.json is ats follows:
{
"name": "myAppName",
"version": "0.0.1",
"dependencies": {
"express": "2.5.9",
"mongoose":"3.5.2",
"jade": "0.15.4",
"ejs": "0.7.1"
},
"engines": {
"node": "0.6.13",
"npm": "1.1.4"
}
}
Because it says "Refusing to delete:..." I thought it might have been a freak error on Heroku, so I tried to push it to a new Heroku-app, but I get the same error.
Any ideas as to what is wrong? Is it my versions? Everything runs fine locally (windows). Any help will be appreciated.
You can force Heroku to clear the cache for your app:
You are using an old
node.js
. Try adding the following topackage.json
:You can inspect thing more closely by logging in on the system. First you need to install Heroku Toolbelt (if you haven't already). Then:
and
This will give you a bash to your heroku installation. Navigate to
/tmp
(cd /tmp
) and see what's left there. Try to remove it manually (rm -rf whatisleft
).Your jade version is out of date too (still). My heroku install with jade has:
Lastly, don't add
node_modules
to source control. So add it to your.gitignore
file.