heroku deploy failed using nodejs

2019-03-21 11:04发布

I am trying to push local files to heroku and getting below error. I have my code in github

Can someone help me in this. Thanks

$ heroku buildpacks:set heroku/nodejs
Buildpack set. Next release on haz will use heroku/nodejs.
Run git push heroku master to create a new release using this buildpack.
$ git push heroku master
Counting objects: 693, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (500/500), done.
Writing objects: 100% (693/693), 63.10 MiB | 2.54 MiB/s, done.
Total 693 (delta 220), reused 639 (delta 171)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Using set buildpack heroku/nodejs
remote: 
remote:  !     Push rejected, failed to detect set buildpack heroku/nodejs
remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote: 
remote: Verifying deploy....
remote: 
remote: !   Push rejected to haz.
remote: 
To https://git.heroku.com/haz.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/haz.git'
$ 

for package.json

{
  "name": "haz",
  "version": "1.0.0",
  "description": "Hazzir: An Ionic project",
  "private": "true",
  "dependencies": {
    "express": "^4.13.3"    
  },
  "main": "serve.js",
  "scripts": {
    "start": "node serve.js",
    "postinstall": "bower install && grunt build",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "engines": {
      "node": "4.1.2",
      "npm": "3.4.0"
    },

  "keywords": [
    "Haz",
    "product"
  ],
  "author": "Asim Khan",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/asimkh/apps/issues"
  },
  "homepage": "https://github.com/asimkh/apps#readme"
}

I tested locally, app is runnning at port 5000 using express

var express = require('express'),
    app = express();

app.use(express.static('www'));

// CORS (Cross-Origin Resource Sharing) headers to support Cross-site HTTP requests
app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    next();
});

// API Routes
// app.get('/blah', routeHandler);

app.set('port', process.env.PORT || 5000);

app.listen(app.get('port'), function () {
    console.log('Express server listening on port ' + app.get('port'));
});

3条回答
走好不送
2楼-- · 2019-03-21 11:30

git init and then readding heroku remote worked

heroku git:remote -a yourappname
查看更多
我欲成王,谁敢阻挡
3楼-- · 2019-03-21 11:34

Try: git add -f package.json It worked for me.

查看更多
对你真心纯属浪费
4楼-- · 2019-03-21 11:50

I see a few issues here

1) You need a procfile - https://devcenter.heroku.com/articles/getting-started-with-nodejs#define-a-procfile

2) You don't specify the engines in your package.json

"engines": {
  "node": "0.10.x"
},

See here- https://discussion.heroku.com/t/the-official-node-js-buildpack-is-going-on-a-diet/100

3) You have comitted your node_modules directory to git. You should be able to download packages using npm install (that's what your packages.json file is for)

Delete this directory, and commit the delete to git. Then, create a .gitignore file. Add the following line to your .gitignore file:

node_modules

commit this .gitignore file to your repository.

Git will now ignore your node_modules_ directory

查看更多
登录 后发表回答