2017-02-28 72 views

回答

0

答案在bundler/setup源代碼中發現:

require 'bundler/shared_helpers' 

if Bundler::SharedHelpers.in_bundle? 
    require 'bundler' 
    if STDOUT.tty? 
    begin 
     Bundler.setup 
    rescue Bundler::BundlerError => e 
     ... 
    end 
    else 
    Bundler.setup 
    end 

    ...  
end 

in_bundle?看來,如果被內部本身運行捆紮機被檢查的方法(用於測試目的,據我可以讓出)並驗證Gemfile是否存在。

所以是的,對於一般用途,您的兩段代碼都是相同的。

bundler/setup版本的優點,就是可以從這樣的命令行運行Ruby:

ruby -rbundler/setup ... some_ruby_script.rb 

,它會自動使你的腳本捆紮機下運行,即使腳本本身可能不是捆紮機意識到,這幾乎與bundle exec所做的一樣。