相关疑难解决方法(0)

如何在开发过程中将Bundler/Gemfile配置为使用不同的gem源?

我有一个Sinatra应用程序,需要我在本地开发的另一个gem.我在配置Bundler以在开发过程中使用我的本地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
Run Code Online (Sandbox Code Playgroud)

与此同时,我每次部署时都会手动出售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任务来自动化我当前的设置.

这种情况的最佳工作流程是什么?

ruby gem rubygems bundler gemfile

14
推荐指数
2
解决办法
6099
查看次数

标签 统计

bundler ×1

gem ×1

gemfile ×1

ruby ×1

rubygems ×1