Why does Heroku fail to detect Node.js buildpack?

前端 未结 7 849
慢半拍i
慢半拍i 2020-12-14 16:18

I git cloned a Node.js application (the version specified in the package.json being 4.1.2 and that of my local machine being 6.2.2) an

相关标签:
7条回答
  • 2020-12-14 16:41

    If you are working on a branch, you need to set master to track your branch

    git branch -f --track master origin/branch_name

    Check for package.json in master

    git show master:package.json

    If it's available, trying pushing again.

    git push heroku master

    `

    0 讨论(0)
  • 2020-12-14 16:53

    It’s because Heroku thinks you are deploying a Node app. But what you are deploying is the public directory of a Node app, not Node code.

    Heroku uses buildpacks to select how the ap is handled. You want to clear that Node association:

    buildpacks:clear # clear all buildpacks set on the app

    Which means that “Next release will detect buildpack normally.”, that should solve it for you.

    ref: https://devcenter.heroku.com/articles/buildpacks

    0 讨论(0)
  • 2020-12-14 16:58

    This means that a package.json file isn't checked into the root of your git project, so Heroku is detecting that it isn't a Node.js app. You can see this locally:

    git show master:package.json
    

    To fix it, you'll want to be sure there is a package.json in the root of your project (where there is also a .git directory), and add it to git:

    git add package.json
    git commit -m 'track package.json'
    

    The phrasing ('failed to detect set buildpack') could be improved. It should probably say 'failed to detect Node.js app'. When the buildpack's "detect" script is run (https://github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/detect), it looks for a package.json file to verify that there's a node app available to build.

    0 讨论(0)
  • 2020-12-14 16:58

    I run into the same issue and tried everything, eventually realized no file would commit because they were already committed and pushed to the github repository. So you need to do the following:

    • Remove old git. folder:

    rm -rf .git

    • Create new git:

    git init

    • Add all project files:

    git add .

    • Commit:

    git commit -m “commit name”

    • Creat new heroku application:

    heroku create

    • Push code to master:

    git push heroku master

    This worked for me.

    0 讨论(0)
  • 2020-12-14 16:59

    Most apps have at least one of these signatures present, so if you see this error, it usually means an important file isn't checked into your git repository:

    • Java: pom.xml

    • Ruby: Gemfile

    • Node.js: package.json

    • Python: requirements.txt / setup.py / Pipfile

    • PHP: composer.json / index.php

    You should:

    git add {file}
    git commit -am 'added {file} 
    git push heroku master
    
    0 讨论(0)
  • 2020-12-14 17:04

    I had similar issue, here are the steps which solved the problem.

    heroku buildpacks:set heroku/nodejs
    git push heroku master
    

    Basically details are in the more info link -


    This situation may also occur if you remove or rename a file that previously led to the automatic detection of your application type and thus the automatic setting of the detected buildpack on your application.


    0 讨论(0)
提交回复
热议问题