我无法弄清楚如何使用bundler来安装与平台相关的gems。
根据bundler docs的建议,我在Gemfile中使用:platforms
选项:
# Gemfile
gem "pry-byebug", platforms: [:mri_20, :mri_21]
gem "pry-debugger", platforms: :mri_19
我没有将依赖项包含在my_gem.gemspec
中,因为它不提供依赖于平台的规范的工具。
当我运行bundle
时,一切正常:相应的宝石按预期包含在Gemfile.lock
中。
当我在另一个(“主机”)宝石中使用我的宝石时会出现问题。
当我在主机gem root中运行bundle
时,host_gem/Gemfile.lock
中会跳过并缺少特定于平台的依赖项。
似乎Bundler只安装了gemspec中指定的依赖项,而不是Gemfile中的依赖项。
所以我的问题是如何正确定义依赖宝石加载的特定于平台的依赖项?