2
是这样的:是否需要'绑定程序/安装程序'与运行Bundler.setup相同?
require 'bundler'
Bundler.setup
实现一样:
require 'bundler/setup'
据我了解,bundler/setup
要求所有组自动,而这不符合require 'bundler
的情况”。所以考虑到这个事实,这是否意味着上述2段代码完成了相同的事情?
是这样的:是否需要'绑定程序/安装程序'与运行Bundler.setup相同?
require 'bundler'
Bundler.setup
实现一样:
require 'bundler/setup'
据我了解,bundler/setup
要求所有组自动,而这不符合require 'bundler
的情况”。所以考虑到这个事实,这是否意味着上述2段代码完成了相同的事情?
答案在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
所做的一样。