问题
I get the following error message on pushing to heroku:
Counting objects: 21, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (21/21), 3.44 KiB, done.
Total 21 (delta 5), reused 0 (delta 0)
-----> Node.js app detected
-----> Resolving engine versions
WARNING: No version of Node.js specified in package.json, see:
https://devcenter.heroku.com/articles/nodejs-versions
Using Node.js version: 0.10.5
Using npm version: 1.2.18
-----> Fetching Node.js binaries
-----> Vendoring node into slug
-----> Installing dependencies with npm
npm ERR! install Couldn't read dependencies
npm ERR! Failed to parse json
npm ERR! Unexpected token }
npm ERR! File: /tmp/build_1nxuppeok7fl7/package.json
npm ERR! Failed to parse package.json data.
npm ERR! package.json must be actual JSON, not just JavaScript.
npm ERR!
npm ERR! This is not a bug in npm.
npm ERR! Tell the package author to fix their package.json file. JSON.parse
npm ERR! System Linux 2.6.32-350-ec2
npm ERR! command "/tmp/node-node-8tU8/bin/node" "/tmp/node-npm-iUEr/cli.js" "install" "--production"
npm ERR! cwd /tmp/build_1nxuppeok7fl7
npm ERR! node -v v0.10.5
npm ERR! npm -v 1.2.18
npm ERR! file /tmp/build_1nxuppeok7fl7/package.json
npm ERR! code EJSONPARSE
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /tmp/build_1nxuppeok7fl7/npm-debug.log
npm ERR! not ok code 0
! Failed to install --production dependencies with npm
0 info it worked if it ends with ok
1 verbose cli [ '/tmp/node-node-8tU8/bin/node',
1 verbose cli '/tmp/node-npm-iUEr/cli.js',
1 verbose cli 'install',
1 verbose cli '--production' ]
2 info using npm@1.2.18
3 info using node@v0.10.5
4 verbose read json /tmp/build_1nxuppeok7fl7/package.json
5 error install Couldn't read dependencies
6 error Failed to parse json
6 error Unexpected token }
7 error File: /tmp/build_1nxuppeok7fl7/package.json
8 error Failed to parse package.json data.
8 error package.json must be actual JSON, not just JavaScript.
8 error
8 error This is not a bug in npm.
8 error Tell the package author to fix their package.json file. JSON.parse
9 error System Linux 2.6.32-350-ec2
10 error command "/tmp/node-node-8tU8/bin/node" "/tmp/node-npm-iUEr/cli.js" "install" "--production"
11 error cwd /tmp/build_1nxuppeok7fl7
12 error node -v v0.10.5
13 error npm -v 1.2.18
14 error file /tmp/build_1nxuppeok7fl7/package.json
15 error code EJSONPARSE
16 verbose exit [ 1, true ]
! Heroku push rejected, failed to compile Node.js app
To git@heroku.com:hidden-hamlet-7335.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:hidden-hamlet-7335.git'
And here's my package.json(In case you want to know I have installed dependencies locally and package.json works)
{
"name": "Simple-chat-application",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app"
},
"dependencies": {
"express": "3.1.0",
"jade": "0.28.1",
"socket.io": "0.9.13"
},
"engines": {
"node": "0.10.x",
"npm": "1.2.x"
}
}
回答1:
The problem was with git add.I had forgotten to add the node_modules files.I closed the terminal and ran the set of commands given in the Getting started with Heroku and NodeJs[1] again.The application was successfully pushed onto the stack.
[1]-https://devcenter.heroku.com/articles/nodejs
来源:https://stackoverflow.com/questions/16425628/heroku-push-rejected-failed-to-compile-node-js-app