rubygems想知道我的开发依赖是什么似乎是一个奇怪的特性,到目前为止,我从未看到它在运行gem测试时实际加载它们。
答案 0 :(得分:13)
如果有人决定以任何理由破解你的宝石,例如他们将它分叉到Github上为它添加一个功能(他们可能想要贡献),如果他们知道你的gem需要哪些开发依赖(例如测试框架,模拟工具等),它会有所帮助。
如果您正在使用带有gemspec
命令的bundler,它将挂钩您的gemspec依赖项并在运行时安装开发依赖项和运行时依赖项
bundle install
这样可以省去手动安装这些宝石的麻烦。
gem命令还可以列出gem的所有依赖项,包括开发项:
gem dependency my_gem
Gem my_gem-0.1.3
activerecord (~> 3.0.0)
json (~> 1.4.3, development)
rake (>= 0, development)
rspec (~> 2.5.0, development)
ruby-openid (~> 2.1.0)
对于其他人而言,这可能更多,而不是为了你自己。
答案 1 :(得分:3)
我的宝石通常有单元测试。此测试有时需要宝石,使用宝石不需要宝石。或许你需要额外的宝石才能生成部分宝石。
一旦我滥用开发依赖项来定义“可选依赖项”(我的gem的某些特定功能需要依赖,但“正常”使用不需要依赖)。
实施例: 我的应用程序提供了以文本或pdf格式导出文件的可能性。 pdf代使用prawn。所以大虾是一个依赖 - 但没有必要使用该应用程序,只有一个特定的功能需要它。
所以我没有将prawn添加到gem依赖项(这是没有必要的),而是添加到开发依赖项(它对gem来说很有用)。