当我使用
时require 'bundler/setup'
我不支持Bundler.with_clean_env
。
但是当我把它更改为
时require 'bundler'
它支持Bundler.with_clean_env
。这里出现的混乱是需要'bundler'
和'bundler/setup'
之间的区别吗?
答案 0 :(得分:1)
在提及宝石时,require 'foo'
需要位于宝石foo.rb
目录中的lib
file。该文件通常与gem名称相同,并且负责要求gem运行所有其他必要文件。
执行require 'foo/bar'
后,您将搜索lib/foo/bar.rb
。换句话说,您只需要来自该宝石的特定file而不是整个宝石。
bundler/setup
负责加载Gemfile中描述的所有gem。 Bundler.with_clean_env
是一个完全不同的功能,在gem的主文件中为defined。
答案 1 :(得分:1)
Gemfiles可以包含:test
或:development
等groups。
require 'bundler/setup'
包含Gemfile中的所有群组。
require 'bundler'
允许您指定(通过Bundler.setup
)要包含的群组。
配置加载路径,以便可能需要Gemfile中的所有依赖项
require 'rubygems' require 'bundler/setup' require 'nokogiri'
仅将指定组中的gem添加到加载路径。如果您想要默认组中的宝石,请确保包含它
require 'rubygems' require 'bundler' Bundler.setup(:default, :ci) require 'nokogiri'