我正在使用Bundler 1.10.6,并且我正在尝试设置备用Gemfile,以保留我的团队正在使用的项目Gemfile中的所有调试宝石。
在我的项目中,我有典型的Gemfile
和Gemfile.lock
文件,并且宝石正在安装到vendor/cache
目录中。我还有一个Gemfile.local
和Gemfile.local.lock
文件,它们将宝石安装到vendor/local
目录中。
当我最初设置它时,这很有效,但它似乎不再按预期工作了。
我已经设置了一个bash别名bec
(" bundle exec custom"),在运行任何bundle exec
命令之前设置BUNDLE_GEMFILE = Gemfile.local,所以如果我运行bec rails s
,rails服务器按照预期使用我的vendor / local文件夹中的gem启动。
但是,如果我运行BUNDLE_GEMFILE=Gemfile.local bundle install --path vendor/local
,则会将gem安装到默认的vendor/cache
目录中。但是,install命令的输出让我很困惑。以下是相关部分(重点补充):
[Bundler fetches gem/version/dependency metadata from my sources]
Resolving dependencies.....................
[Bundler specifies version numbers for all of my gems]
Using gemname 10.0.0
Using gemname 1.5.2.
etc.......
Updating files in vendor/cache <----- !!!!!!!!
* gem-5.8.3.gem
* othergem-1.6.6.4.gem
* etc...........
Removing outdated .gem files from vendor/cache
* gem-5.8.2.gem
* othergem-1.6.6.1.gem
* etc...........
Bundle complete! 48 Gemfile dependencies, 286 gems now installed.
Bundled gems are installed into ./vendor/local. <------ ?!?!?
git status
然后会在vendor/cache
中显示大量已删除且未跟踪的文件。我的vendor/local
中有.gitignore
,所以没有任何内容可以显示。
我的目标是根本不修改供应商/缓存目录。 --path
论证不应该解决这个问题吗?我有一个为我运行此命令的bash别名,但手动执行此操作并不会改变任何内容。我还尝试将--path设置为--path=vendor/local
而不是--path vendor/local
,但也没有改变。我做错了吗?