Gemfile - 将生产 gem 与开发 gem 分开

2024-04-21

所以我知道在 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。为了缩短在本地计算机上进行开发的时间,我们希望能够将我们的开发环境指向 gems 的本地副本 - 这样它就可以获取所有更改,而无需重新启动 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我得到同样的错误。

有谁知道是否可以做我想做的事?

Thanks!


我认为有一种受支持的方法可以做到这一点,并且有一些技巧可以解决它。

支持方式:

use bundle configlocal此处描述的选项:http://bundler.io/v1.3/man/bundle-config.1.html http://bundler.io/v1.3/man/bundle-config.1.html

黑客方式:

在生产中使用之前使用环境变量并执行捆绑器:http://www.cowboycoded.com/2010/08/10/using-2-sources-for-a-gem-in- Different-environments-with-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 https://github.com/carlhuda/bundler/issues/396

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gemfile - 将生产 gem 与开发 gem 分开 的相关文章

随机推荐