一尘不染

为什么Heroku无法检测到Node.js buildpack?

node.js

我GIT克隆了的Node.js应用程序(在指定的版本package.json存在4.1.2和我的本地机器的存在6.2.2),并试图在Heroku混帐推。但是它无法建立并给出了这个错误:

无法检测到设置的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 buildpack的可能原因是什么?


阅读 266

收藏
2020-07-07

共1个答案

一尘不染

这意味着没有将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'

措辞(“无法检测到设置的构建包”)可以得到改善。它可能应该说“未能检测到Node.js应用程序”。运行buildpack的“检测”脚本(https://github.com/heroku/heroku-
buildpack-nodejs/blob/master/bin/detect)时,它将查找package.json文件以验证是否存在节点应用程序可以建造。

2020-07-07