我们正在研究构建一个非常大的rails应用程序并考虑使用引擎来更好地将“模块”从主应用程序中分离出来。
我们已经通过使用gem motorhead创建一个小引擎来开始这个过程(想要使用它的active_if组件)。 然后将该引擎从主应用程序中删除并给出一个git init,然后推送到github。
然后主应用程序能够在Gemfile中拉出gem。
在这个概念验证期间,它可以工作,但效率不高,而且更新新引擎/ gem也有点尴尬,因为它在某种程度上是一个子模块。在构建像这样的模块化应用程序时,构建和维护引擎/宝石的正确工作流程是什么?
提前致谢
答案 0 :(得分:0)
将Gems或Engines部署为模块最常见的部分是不断更新。使用时我们取得了很大的成功:
bundle config local.my_gem ~/projects/my_gem/
它指向磁盘上的Gem / Engine版本而不修改Gemfile和Gemfile.lock。
删除本地覆盖运行:
bundle config --delete local.my_gem ~/projects/my_gem/
有了这个,您应该能够将Gemfile.lock的更新时间限制为部署时间。