12

事前コンパイル手順を処理するためにBundlerとGuardを使用しているNodeプロジェクトがあります。これは、プロジェクトのルートにpackage.jsonファイルと一緒にGemfileがあることを意味します。

私の問題は、Gemfileが存在するという理由だけで、Herokuが私のプロジェクトがRubyアプリであると信じていることです。そして、私がコミットしたくないGemfile.lockをコミットしていないと不平を言います。

-----> Heroku receiving push
-----> Ruby app detected
 !
 !     Gemfile.lock is required. Please run "bundle install" locally
 !     and commit your Gemfile.lock.
 !
 !     Heroku push rejected, failed to compile Ruby app

アプリがRubyアプリではなくNodeアプリであることをHerokuに伝える方法はありますか?

4

2 に答える 2

34

これに対する解決策は、Herokuサポートの多くの助けを借りて、ビルドパックを使用することです。

BUILDPACK_URL構成変数でカスタムビルドパックを指定して、Herokuのデフォルトビルドパックをオーバーライドします

$ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-nodejs

アプリの作成中にビルドパックを指定することもできます

$ heroku create -s cedar --buildpack https://github.com/heroku/heroku-buildpack-nodejs

あなたがそれを知っているときは簡単です。Heroku Dev Centerには、さらにいくつかのドキュメントがあります。

于 2012-04-05T09:24:48.260 に答える
3

hereBUILDPACK_URLで説明されているように、現在は非推奨になっているため、これを行う新しい方法があるようですが、基本的にコマンドは次のとおりです。

$ heroku buildpacks:set heroku/nodejs

アプリの作成中にビルドパックを指定することもできます。

$ heroku create myapp --buildpack heroku/nodejs

于 2015-11-28T03:22:44.097 に答える