2016-07-29 14 views
19

Node.jsアプリケーション(4.1.2のpackage.jsonで指定されたバージョンと6.2.2のローカルマシンで指定されたバージョン)をクローンし、Herokuでgit pushしようとしました。しかし、それは、ビルドに失敗し、このエラーを与えた:HerokuがNode.jsビルドパックを検出できないのはなぜですか?

Failed to detect set buildpack https<span>:</span>//codon-buildpacks.s3.amazonaws&period;com/buildpacks/heroku/nodejs.tgz 

は、今私はHerokuの/ nodejsにbuildpackを設定し、私はこのメッセージが表示されます:私はgit push heroku masterを実行したときに

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. 

は今、私は再び聞いています:

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. 

設定してもNode.jsビルドパックが検出されない理由は何ですか?

答えて

25

これは、package.jsonファイルがgitプロジェクトのルートにチェックインされていないため、HerokuがNode.jsアプリケーションではないことを検出しています。 (また.gitディレクトリがある場合)

git show master:package.json 

はそれを修正するには、あなたのプロジェクトのルートに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ファイルが検索され、構築可能なノードアプリケーションがあることを確認します。

+0

同じ問題があり、package.jsonが自分のレポに存在しています。あなたはこのエラーの別の原因となる可能性があることを知っていますか? – katie

+1

package.jsonは.gitを持つフォルダに置く必要があります。ルートディレクトリには.gitとnodeというフォルダがあり、nodeフォルダにはindex.jsとpackage.jsonがあります。 – Shree

+1

これはpackage.jsonがgit repoのルートディレクトリではなくサブディレクトリにあるためですか?package.jsonをルートディレクトリに移動する必要がありますか? – Shree

3

私は同様の問題を抱えていましたが、ここで問題を解決した手順があります。

heroku buildpacks:set heroku/nodejs 
git push heroku master 

基本的な詳細は、詳細はリンクしている -


以前に、アプリケーションの種類を自動的に検出し、これ自動につながったファイルを削除するか、名前を変更する場合は、このような状況でも発生する可能性がありますアプリケーションで検出されたビルドパックの設定。


+0

まだ動作しません、他に何かできますか? – swateek

7

これは、HerokuがNodeアプリケーションを導入していると考えているからです。しかし、展開しているのはpublicディレクトリのノードアプリケーションであり、ノードコードではありません。

Herokuはbuildpackを使用してapの処理方法を選択します。あなたは、そのノードの関連付けをクリアする:

buildpacks:clear # clear all buildpacks set on the app

ことを意味し、あなたのためにそれを解決する必要があり、その「次のリリースは、通常buildpackを検出します。」。

REF:他の回答にhttps://devcenter.heroku.com/articles/buildpacks

+0

'heroku buildpacks:clear'は私の問題を解決しました。ありがとう。 – eabates

1

いくつかの小さな明確化: エラー "が設定buildpack httpsの検出に失敗しました://codon-buildpacks.s3.amazonaws. COM/buildpacks/Herokuの/ nodejs.tgz" をか同様の何か、あなたがherokuにプッシュしようとしているGIT COMMITがnode.jsアプリとして検出されなかったと言うことを意味します。 (微妙なものには大文字を書いてください)。

最近「ls -a」を実行すると、私のpackage.jsonファイルと.gitファイルが、herokuの要求と同じルートディレクトリにあることがわかりました。 package.jsonファイルが私の最新のgitコミットに含まれていないことを除いて。 "git status"を実行すると、package.jsonがuntrackedファイルであることが警告されました。だから私はそれを追加した、そしてタダは、ヒロクに押し込んで働いた。

buildpackに関するエラーが発生した場合は、GIT COMMITにルートディレクトリのpackage.jsonファイルがあることを確認してください。これに当てはまる場合は、 "heroku buildpacks:set heroku/nodejs"(またはご希望の言語)でビルドパックを手動で指定してみてください。ビルドパックの検出に関連するほとんどのエラーを解決するはずです。マスター

git show master:package.json

+0

あなたは男の男です!私の命を救いました! –

1

あなたはブランチで作業している場合、あなたはあなたのブランチを追跡するために、マスタを設定する必要が

git branch -f --track master origin/branch_name

package.jsonのためのチェックが利用できるなら、もう一度プッシュしよう。

git push heroku master

`

0

ほとんどのアプリケーションは、これらの署名のうち少なくとも一つ存在を持っているので、このエラーが表示された場合、それは通常、重要なファイルは、あなたのgitリポジトリにチェックインされていないことを意味:

  • のJava:のpom.xml

  • ルビー:Gemfile

  • のNode.js:package.json

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

  • PHP:composer.json/index.phpを

あなたがすべき:

git add {file} 
git commit -am 'added {file} 
git push heroku master 
関連する問題