所以我知道在 Gemfile 中我可以做这样的事情:
group :development, :test do
gem 'gem1'
gem 'gem2'
end
我想要完成的事情是这样的:
group :production do
gem 'gem1'
gem 'gem2'
end
group :development, :test do
gem 'gem1', :path => '/Documents/Code/gem1/'
gem 'gem2', :path => '/Documents/Code/gem2/'
end
所以我们的应用程序使用了 2 个我们也在本地开发的 gem。为了缩短在本地机器上开发的时间,我们希望能够将我们的开发环境指向 gem 的本地副本——这样它就可以在不需要重新启动 rails 服务器的情况下获取所有更改。否则我们将不得不重建 gem,重新安装 gem,并在 gem 中的每个开发更改时重新启动 rails。
但是,这样做会给我以下错误:
You cannot specify the same gem twice coming from different sources. You specified that gem1 (>= 0) should come from an unspecfied source and source at /Documents/Code/gem1
我什至尝试运行类似 bundle install --without production
的东西,但我得到了同样的错误。
有谁知道是否可以做我想做的事?
谢谢!
最佳答案
我认为有一种受支持的方法可以做到这一点,并且有一些技巧可以解决它。
支持方式:
使用 bundle config
和 local
选项,如下所述:http://bundler.io/v1.3/man/bundle-config.1.html
黑客方式:
在生产环境中使用之前使用环境变量并执行 bundler :http://www.cowboycoded.com/2010/08/10/using-2-sources-for-a-gem-in-different-environments-with-bundler/
在 github 上有一个针对此问题的功能请求,其中有几个相关问题和大量评论:https://github.com/carlhuda/bundler/issues/396
关于ruby - Gemfile - 将生产 gems 与开发 gems 分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805569/