问题描述
git克隆了一个Node.js应用程序(在package.json中指定的版本是4.1.2,而本地机器的版本是6.2.2),并试图在Heroku上推送。但它未能生成并给出此错误:
这意味着 package.json 到你的git项目的根目录,所以Heroku发现它不是Node.js应用程序。你可以在本地看到:
git show master:package.json
为了解决这个问题,你需要确定项目根目录中有一个package.json(其中还有一个.git目录),并添加到git中:
git add package.json
git commit -m'track package.json'
可以改进措辞('未检测到set buildpack')。它可能应该说'未能检测到Node.js应用程序'。当buildpack的检测脚本运行时(),它会查找一个package.json文件来验证是否有可用的节点应用程序可以构建。
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<span>:</span>//codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgzNow 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<span>: </span>//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?
解决方案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.jsonTo 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.
这篇关于为什么Heroku无法检测到Node.js buildpack?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!