从本地文件夹获取 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 gemsets,或使用@ 987654326@.)
但您也确实询问过“首先查看本地文件夹,如果不存在则仅返回到远程源”。这是一个非常奇怪的要求(通常您只想明确选择加入以从本地路径获取宝石?!),但要按照您的要求回答这个问题...
Gemfile 实际上就是 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
如果这个(不寻常的)模式需要在多个地方重复,你可以将它包装到一些辅助方法中。
更多bundler的配置选项请见the documentation。