直接修改Gemfile.lock会怎样?[英] What happens when modifying Gemfile.lock directly?

本文是小编为大家收集整理的关于直接修改Gemfile.lock会怎样?的处理方法,想解了直接修改Gemfile.lock会怎样?的问题怎么解决?直接修改Gemfile.lock会怎样?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

自从 bundle install 第二次执行后,只要 Gemfile 没有改变,依赖就会从 Gemfile.lock 加载.

但我想知道如何检测这两个文件之间的更改.

例如,如果我将新依赖项直接添加到 Gemfile.lock 中而不将其添加到 Gemfile 中(与最佳实践相反,因为 Gemfile.lock 是从 Gemfile 自动生成的),bundle install 是否会考虑 Gemfile改变了吗?

确实,bundle install 进程是否会比较整个 Gemfile 和 Gemfile.lock 树以检测更改?

如果是这样,即使我直接将依赖项添加到 Gemfile.lock,Gemfile 也会被检测为已更改(因为不同)并会重新擦除 Gemfile.lock(因此丢失添加的依赖项...)

bundle install第二次上线后的流程是怎样的?

为了更清楚,我的问题是:

是否仅基于 Gemfile 的更改?这意味着捆绑器将保留每个 bundle install 执行次数 N 的 Gemfile 快照,并且仅将其与 bundle install 执行 N+1 进行比较?

或者在 bundler 内存中没有创建快照,并且 bundler 每次都与 Gemfile.lock 进行比较,以检测是否必须将 Gemfile 视为已更改.

推荐答案

如果你编辑你的 Gemfile.lock 那么 Rails 应用程序将依赖于其他版本的 gems... 你的 gem-versioning 系统的完整性会被破坏案件.直接编辑 Gemfile.lock 文件是一个非常非常糟糕的主意.

请做个好人,只与 Gemfile 做交易

本文地址:https://www.itbaoku.cn/post/786434.html