edwardila
(Edward Skalibog)
21. September 2021 um 16:39
1
Hallo, Discourse-Team,
ich möchte euch eine interessante Lösung für die Gemfile-Verwaltung im Plugin-Verzeichnis und das Hinzufügen erforderlicher externer Gems anbieten:
# Lade die Gemfiles der Plugins
Dir.glob File.expand_path("../plugins/*/{Gemfile}", __FILE__) do |file|
eval_gemfile file
end
Wenn wir dies in das Haupt-Gemfile aufnehmen, können wir die Gemfiles der Plugins laden.
Lass uns diese Lösung diskutieren.
P.S. Die DSL-Dokumentation für eval_gemfile findest du hier: https://apidock.com/ruby/v2_6_3/Bundler/Dsl/eval_gemfile
2 „Gefällt mir“
Falco
(Falco)
21. September 2021 um 16:48
2
Das ist interessant! Momentan können Plugins Gems anfordern, indem sie den gesamten rekursiven Abhängigkeitsbaum in der plugin.rb-Datei auflisten, z. B.:
2 „Gefällt mir“
edwardila
(Edward Skalibog)
21. September 2021 um 16:53
3
Danke, das ist genau das, was ich gesucht habe.
Aber ich finde, meine Entscheidung ist für mich klarer und verständlicher.
Gründe (meiner Meinung nach):
plugin.rb bleibt sauberer.
Gemfile ist für Rails-Entwickler verständlicher.
1 „Gefällt mir“
sam
(Sam Saffron)
28. September 2021 um 06:39
4
Leider bedeutet dies, dass die Lock-Datei ein sich ständig veränderndes Ziel wird, und wir diese in der Versionskontrolle bereitstellen.
Gem-Dateien sind zwar praktisch, aber solange wir keine Delta-Lock-Dateien bereitstellen können, wird eine solche Lösung nicht funktionieren.