Rails打包器不会在组中安装gem
我有几个gem,包括ruby-debug在一个叫做:development的捆绑器组中。 当我运行捆绑命令时,这些gem被忽略,它只安装不在任何组中的gem。 我如何确保bundler不会忽略开发组中的gem?
编辑:这是我的Gemfile的样子。
source 'http://rubygems.org' gem 'rails', '3.0.1' # Auth gems gem "devise", "1.1.3" gem "omniauth" # Bundle Mongoid gems gem "mongoid", "2.0.0.beta.19" gem "bson_ext" # Asset gems gem 'jquery-rails' gem "jammit" # Controller gems gem 'inherited_resources', '1.1.2' # View gems gem 'haml' gem 'formtastic', '~> 1.1.0' # Nokogiri gem "mechanize" gem "json" group :development do gem "ruby-debug" gem 'compass' gem 'compass-colors' gem 'pickler' gem 'haml-rails' gem 'rails3-generators' gem "hpricot" gem "ruby_parser" gem 'fog' end
在一个任期内,它记住了without
select权。 如果你第一次跑
bundle install --without development
它记得你做到了这一点,并会自动重复下一步
bundle install #remembers and includes --without development
运行别的东西,比如bundle install --without nothing
应该清除caching。 我对吗?
更新20150214:根据@Stan Bondi( https://github.com/bundler/bundler/issues/2862 )的评论中引用的问题,这在捆绑软件2.0中得到修复。 谢谢Stan。
如果您使用的是rails,则会在您的rails根目录中将一个文件config
写入一个名为.bundle
的隐藏目录中:
.bundle/config
这个文件,在我的情况下,完全without
设置。
所以我刚刚删除了.bundle
目录:
rm .bundle -r
之后:
bundle install
再次按预期工作。
Using: bundler (1.5.2)
我有同样的问题,并与国旗为我工作。 你需要传递你想要包含的组名。 像那样:
bundle install --with development
gem 'aws-s3' gem 'paperclip' group :test do gem 'rspec' gem 'waitr' gem 'faker' end gem 'rest-client', :group => :development gem 'cucuber-rails', :groups => [:development,:test] (cucuber-rails gems comes under both group) bundle install --without development #(ignore development group gems) bundle install #(still bundle remembers --without development so result is still ignore development groups it will not install all gems) bundle install --without nothing #(just clearing cache, now all the gems to be loaded into the ruby loadpath)
更多
我有一个类似的问题 – 在分级中被忽视 – 解决办法是把它放到“全局”空间中:
gem 'thin' group :production do gem 'puma' end
事实上,Rails在开发环境中自动加载:development
组。 检查你的App中的Rails.env
是否真的返回"development"
。
有关Bundler中的群组的更多信息: http : //gembundler.com/groups.html