为什么我们需要Ruby中的Gemfile.lock?

Ped*_*roD 2 ruby rubygems bundler

是不是Gemfile.lock用于在依赖版本控制中延续不良做法?

即开发人员不应该严格在Gemfile中设置依赖版本范围吗?

例如,如果我的Gemfile说我依赖gem A版本1.0.1或版本[1.0-2.0],为什么我需要.lock?

Ano*_*noE 5

不,Gemfile.lock很有意义,对自动挑选宝石版本的概念至关重要.作为开发人员,您无需担心确切的版本号.你可以说"给我任何版本的宝石X适合所有其他宝石的所有其他版本"(只是说gem 'xyz'没有任何进一步的信息).或者你可以告诉它留在旧版本的gem(gem 'xyz', '~> 2.3.0')或其他什么的bug修复行.

通过在Gemfile.lock您中添加确切版本,请确保版本对所有开发人员(和环境)保持一致.您可以将更新版本的gem升级为有意识(并且记录良好)的选择,而不是构建/部署过程的随机部分.