Ruby Bundler配置在自定义路径中查找gem或从自定义源下载gem
如何配置bundler,以便在运行Ruby Bundler配置在自定义路径中查找gem或从自定义源下载gem,ruby,path,rubygems,bundler,Ruby,Path,Rubygems,Bundler,如何配置bundler,以便在运行bundle install时,它首先在/my/custom/path下查找gem,如果没有找到,则尝试从下托管的ruby gem远程存储库中获取它们https://a.nice.host并将其下载到/local/relative/path(例如相对于cwd)。我想避免捆绑程序查看默认的gem安装系统路径或rubygems.org从本地文件夹查找gem的语法是: gem 'some-gem-name', path: '/my/custom/path' 用于指定
bundle install
时,它首先在/my/custom/path
下查找gem,如果没有找到,则尝试从下托管的ruby gem远程存储库中获取它们https://a.nice.host
并将其下载到/local/relative/path
(例如相对于cwd
)。我想避免捆绑程序查看默认的gem
安装系统路径或rubygems.org从本地文件夹查找gem的语法是:
gem 'some-gem-name', path: '/my/custom/path'
用于指定自定义源的语法为:
gem 'another-gem-name', source: 'https://a.nice.host'
要将gems安装到特定的本地文件夹中,您可以运行:
bundle install --path ./local/relative/path
现在,这可能就是您需要的所有工具,事实上…(事实上,特别是对于最后一个需求,您可能希望查看rvm gemests
,或者使用bundle install--deployment
)
但你也问过“先查找本地文件夹,如果不存在,只返回到远程源”。这是一个非常奇怪的要求(通常你只想明确地选择从本地路径获取宝石?!),但要回答这个问题,就像你问的那样
一个Gemfile
实际上就是ruby代码!所以你可以使用…你猜对了,ruby!来定义这个逻辑,例如:
if File.exists?('/my/custom/path')
gem 'some-gem-name', path: '/my/custom/path'
else
gem 'some-gem-name', source: 'https://a.nice.host'
end
如果这个(不寻常的)模式需要在多个地方重复,您可以将其包装到某个助手方法中
有关捆绑机
配置选项的更多信息,请参阅