Rails bundler不会在组内安装gem

pic*_*rdo 55 ruby rubygems ruby-on-rails bundler

我有一些宝石,包括ruby-debug在一个名为:development的捆绑组中.当我运行bundle命令时,这些gem被忽略,它只安装不在任何组中的gem.如何确保bundler不会忽略:development组中的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
Run Code Online (Sandbox Code Playgroud)

oma*_*oma 130

在一个学期内,它会记住这个without选项.如果你第一次跑

bundle install --without development 
Run Code Online (Sandbox Code Playgroud)

它记得你这样做了,并会自动重复这个

bundle install #remembers and includes --without development
Run Code Online (Sandbox Code Playgroud)

运行别的东西,比如bundle install --without nothing应该清除缓存.我对吗?

更新20150214:根据@Stan Bondi评论中引用的问题(https://github.com/bundler/bundler/issues/2862),这在bundler 2.0中已得到修复.谢谢斯坦.

  • 刚被这个咬了.命令行标志应该是无状态的. (56认同)
  • 这节省了我的挫折!执行`rm .bundle/config`是清除缓存的最佳方法. (31认同)
  • 谢谢你……我生命中的两个小时我永远不会回来。 (2认同)

mah*_*ich 29

如果您使用rails,则会有一个文件config写入.bundlerails根目录中调用的隐藏目录:

.bundle/config
Run Code Online (Sandbox Code Playgroud)

在我的例子中,这个文件完全保留了without设置.

所以我刚刚删除了.bundle目录:

rm .bundle -r
Run Code Online (Sandbox Code Playgroud)

之后:

bundle install 按预期再次工作.

Using: bundler (1.5.2)
Run Code Online (Sandbox Code Playgroud)


Vla*_*nov 11

我有同样的问题,--with旗帜为我工作.您需要传递要包含的组名称.像那样:

bundle install --with development
Run Code Online (Sandbox Code Playgroud)