edwardila
(Edward Skalibog)
1
你好,Discourse 团队
我想为插件目录中的 Gemfile 以及在需要时添加外部 gems 提供一个有趣的解决方案:
# 加载插件的 Gemfile
Dir.glob File.expand_path("../plugins/*/{Gemfile}", __FILE__) do |file|
eval_gemfile file
end
如果我们将此添加到主 Gemfile 中,就可以加载来自插件的 Gemfile。
让我们讨论一下这个解决方案。
附:eval_gemfile 的 DSL 文档 = https://apidock.com/ruby/v2_6_3/Bundler/Dsl/eval_gemfile
2 个赞
Falco
(Falco)
2
这很有趣!目前,插件可以通过在 plugin.rb 文件中列出完整的递归依赖树来要求使用 gem,例如:
2 个赞
edwardila
(Edward Skalibog)
3
谢谢,这正是我想要的。
但我觉得我的决定对我来说更清晰、更易理解。
原因(个人看法):
- 我们让 plugin.rb 保持更简洁
- Gemfile 对 Rails 开发者来说更易理解。
1 个赞
sam
(Sam Saffron)
4
不幸的是,这意味着锁定文件将变得不断变化,而我们将它包含在源代码控制中。
Gem 文件虽然不错,但在我们能够发布增量锁定文件之前,此类解决方案将无法奏效。