自第二次執行bundle install
以來,只要Gemfile未更改,就會從Gemfile.lock中加載依賴項。直接修改Gemfile.lock會發生什麼?
但我想知道如何檢測這兩個文件之間的變化。例如,如果我直接向Gemfile.lock中添加新的依賴項而不將其添加到Gemfile中(與從Gemfile自動生成Gemfile.lock的最佳做法相反),那麼bundle install
會將Gemfile作爲改變了?
確實,bundle install
進程是否比較了整個Gemfile和Gemfile.lock樹以檢測更改?如果是這樣,即使我直接向Gemfile.lock添加依賴項,Gemfile也會被檢測爲已更改(因爲不同),並會重新清除Gemfile.lock(因此會失去添加的依賴項...)
bundle install
自第二次推出以來的過程如何?
更清楚,我的問題是:
只從基於的Gemfile變化?這意味着bundler會保留每個執行編號爲N的Gemfile快照,並且僅將其與執行N + 1的bundle install
進行比較?
或者在捆綁器內存中未創建快照,並且捆綁器每次都會與Gemfile.lock進行比較,以檢測是否必須將Gemfile視爲已更改。
只需刪除Gemlock文件,將你需要的寶石放在gem文件中並運行'bundle install'。而已。我不認爲想想gemlock文件是個好主意。 ;) – uday
@uDaY我同意你的意見,但我很好奇捆綁安裝的過程中的過程:) – Mik378
你讀過[this](http://gembundler.com/rationale.html)和[this]( http://gembundler.com/man/bundle-install.1.html)? –