我有一个 Sinatra 应用程序需要我在本地开发的另一个 gem。我在配置 Bundler 以在开发期间使用我的本地 gem 代码时遇到问题,但在生产中使用我出售的 gem 代码。
理想情况下我可以做这样的事情,但是 Bundler 不允许你指定同一个 gem 两次:
# Doesn't work:
group :development do
gem 'awesome', :path => "~/code/awesome"
end
group :production do
gem 'awesome', :path => "vendor/gems/awesome-0.0.1"
end
与此同时,我每次部署时都采用手动销售 gem 并更新 Gemfile 中的 gem 源,这非常麻烦。我的工作流程是这样的:
- 在开发期间指向我的本地 gem (
gem 'awesome', :path => "~/code/awesome"
) - 准备部署时,将 gem 解压到
vendor/gems
- 更新 Gemfile 以指向 vendored gem(
gem 'awesome', :path => "vendor/gems/awesome-0.0.1"
) - 运行
bundle install
(更新 Gemfile.lock) - 部署代码
- 回到第 1 步。
太麻烦了!我想做一些更干净的事情,而不是简单地编写 Rake 任务来自动化我当前的设置。
这个场景的最佳工作流程是什么?
最佳答案
有一个新功能可以做到这一点,只需指定 local.gem_name
配置选项,例如:
bundle config local.rack ~/path/to/local/rack
这仅在 gem 具有 Gemfile 中指定的 git 存储库和分支时有效。
有关详细信息,请参阅 Bundler 文档:http://bundler.io/v1.3/bundle_config.html
关于ruby - 如何配置 Bundler/Gemfile 以在开发期间使用不同的 gem 源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337773/