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
) and tried to git push on Heroku. But it failed to build and gave this error:
Failed to detect set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz
Now I set the buildpack to heroku/nodejs and I get this message:
Buildpack set. Next release on lit-badlands-92088 will use heroku/nodejs. Run git push heroku master to create a new release using this buildpack.
Now when I run git push heroku master
, I am again told:
remote: -----> Failed to detect set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure remote: remote: ! Push failed remote: Verifying deploy... remote: remote: ! Push rejected to lit-badlands-92088.
What could be the possible reasons for the Node.js buildpack not being detected even if I set it?
You can change the buildpack used by an application by setting the buildpack value. When the application is next pushed, the new buildpack will be used. $ heroku buildpacks:set heroku/php Buildpack set. Next release on random-app-1234 will use heroku/php.
Buildpacks are composed of a set of scripts that will perform tasks such as retrieve dependencies or output generated assets or compiled code. If you are using a language that is officially supported by the Heroku platform, the build system will automatically detect which Heroku Buildpack is needed for the job.
js release schedule below, Heroku's currently supported Node. js versions are 14. x , 16. x , and 18.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With