「bundle exec rake」と「bundle execrackup」の違いは何ですか?また、rackup の実行フローはどこから始まりますか?
概要
「bundle exec」は、指定されたディレクトリと gemfile のコンテキストで何かを実行するようにバンドラーに指示していることを理解しています。
しかし、bundle exec rake とbundle execrackup の違いは何でしょうか?
また、bundle execrackupの場合、実行の流れはどこから始まるのでしょうか?
解決策
それらは異なるツールです。
Rack アプリケーションを実行するには、そのアプリケーションへのパスをパラメータとして渡すことができます。 バンドル実行ラックアップ yourapp.ru または、アプリケーションの初期化で config.ru ファイルを作成し、bundle execrackup を実行するだけです。
最小限の Rack アプリケーションは次のとおりです。
run ->(env) { [200, {'Content-Type' => 'text/html'}, ['Hi Mugen']] }
更新
@tadmanが以下のコメントで述べたように、bundle execはGemfileにあるものをロードして環境を準備するだけです。また、設定によっては、bundle exec コマンドを使用せずに rake および Rackup を実行することもできます。