我git克隆了一个Node.js应用程序(在package.json
中指定的版本是4.1.2
,我的本地机器的版本是6.2.2
),并尝试在Heroku上使用git推送。但是它构建失败,并给出了这个错误:
检测set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/nodejs.tgz失败
现在我将buildpack设置为heroku/nodejs,并收到以下消息:
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.
现在,当我运行git push heroku master
时,我再次被告知:
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.
即使我设置了Node.js构建包,也无法检测到它,可能的原因是什么?
发布于 2016-07-30 00:53:23
这意味着没有将package.json
文件签入到您的git项目的根目录中,因此Heroku检测到它不是Node.js应用程序。您可以在本地查看:
git show master:package.json
要修复它,您需要确保在项目的根目录(其中还有一个.git目录)中有一个package.json,并将其添加到git:
git add package.json
git commit -m 'track package.json'
措辞(‘未能检测到set buildpack')可以改进。它可能会说“未能检测到Node.js应用程序”。当运行构建包的“检测”脚本(https://github.com/heroku/heroku-buildpack-nodejs/blob/master/bin/detect)时,它将查找package.json文件以验证是否有节点应用程序可供构建。
发布于 2016-08-26 01:41:56
这是因为Heroku认为您正在部署Node应用程序。但您要部署的是节点应用程序的public
,而不是节点代码。
Heroku使用构建包来选择如何处理ap。您想要清除该节点关联:
buildpacks:clear # clear all buildpacks set on the app
这意味着“下一版本将正常检测buildpack。”,这应该会为你解决这个问题。
发布于 2016-08-21 12:55:07
我也遇到过类似的问题,下面是解决问题的步骤。
heroku buildpacks:set heroku/nodejs
git push heroku master
基本上详细信息在更多信息链接中-
如果您删除或重命名以前导致自动检测应用程序类型的文件,从而在应用程序上自动设置检测到的构建包,也可能发生这种情况。
https://stackoverflow.com/questions/38658038
复制相似问题