ruby - 如何配置 Bundler/Gemfile 以在开发期间使用不同的 gem 源?

标签 ruby rubygems gem bundler gemfile

我有一个 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 源,这非常麻烦。我的工作流程是这样的:

  1. 在开发期间指向我的本地 gem (gem 'awesome', :path => "~/code/awesome")
  2. 准备部署时,将 gem 解压到 vendor/gems
  3. 更新 Gemfile 以指向 vendored gem(gem 'awesome', :path => "vendor/gems/awesome-0.0.1")
  4. 运行 bundle install(更新 Gemfile.lock)
  5. 部署代码
  6. 回到第 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/

相关文章:

ruby - 使用 Ruby 2.0 的 Windows 中的 sqlite3_native.rb 在哪里?

ruby - 当我运行 "gem install bundler"时出现权限被拒绝错误

ruby - 在 Windows 上使用 gem 时为 "bad response Proxy Authentication"

ruby-on-rails - 在 cygwin 和 powershell 中查看不同的 gem 列表

ruby-on-rails - 如何在公共(public)事件中设置收件人ID

ruby-on-rails - 继承资源和CanCan 3层嵌套

ruby - 为 DataMapper 安装 do_sqlite3 时出现问题

ruby-on-rails - 急切加载 rails 库

ruby-on-rails - 你应该测试 Rails 应用程序使用的 gem 吗?如果是这样,你如何?

ruby - youtube_it gem找不到视频时如何处理404响应