它看起来对我来说,PATH直接列出了从您的gemspec第一代的依赖,而创业板列出了第二代的依赖关系(即你的依赖依赖)和那些从你的Gemfile。 PATH :: remote是.
,因为它依赖当前目录中的本地gemspec来查找属于PATH :: spec的内容,而GEM :: remote是rubygems.org
,因为这是它必须去查找GEM中属于哪个属性的地方::规格。
在Rails插件中,您将看到PATH部分,但不会显示在Rails应用程序中。由于该应用没有gemspec文件,因此PATH中不会有任何内容。
至于相关性,gembundler.com状态:
Runtime dependencies in your gemspec are treated like base dependencies,
and development dependencies are added by default to the group, :development
通过rails plugin new my_plugin
产生的Gemfile中说类似的话:
# Bundler will treat runtime dependencies like base dependencies, and
# development dependencies will be added by default to the :development group.
这意味着该
s.add_development_dependency "july" # (1)
之间的差异
s.add_dependency "july" # (2)
是(1)在开发环境中仅包含Gemfile.lock中的“july”(因此在应用程序中)。因此,当您运行bundle install
时,不仅会在PATH下看到“七月”,而且还会在依赖项下看到“七月”,但仅在开发阶段。在生产中,它根本就不存在。但是,使用(2)时,只会在PATH中看到“7月”,而不是在相关内容中,但是当您从生产环境中(即在其他包含您作为依赖关系的其他gem中)出现bundle install
时,不仅仅是发展。
这些只是我的观察,我不能完全解释为什么这是它的方式,但我欢迎进一步的意见。
这并没有回答他的任何问题,他问的是Gemfile.lock的格式,但这恰恰说明什么确实。 –