模块化开发的工具链
创建时间:
由于在项目中采用了模块化开发,相当于把一个大项目拆分成了若干个小项目。从某个角度上来说,增加了项目开发的复杂度。
单一项目开发时涉及到的代码改动,只需要提交一次即可,改成engine开发后,大概率会涉及到多个engine的改动。
提交代码的次数变多,提交代码后又需要更新Gemfile文件,也增加了成本。
如果用传统的方法,这些成本增加的时间消耗无疑是不太划算的。
在长期的实践中,我摸索出了一套工具链的优化方案。
解决 Gemfile 问题
Gemfile文件中正常引用 gem 的路径即可。
gem 'rails_com', github: 'work-design/rails_com', branch: 'master'
.bundle/config 设置如下
BUNDLE_LOCAL__RAILS_COM: "/Users/qin/work/engine/rails_com"
# 此选项会忽略检查分支是否一致。
BUNDLE_DISABLE_LOCAL_BRANCH_CHECK: "true"
解决批量提交问题
借助IDE的帮助可以轻松解决。
-
批量Git Commit
在 Tool Window Bars 中找到9: Version Control
,点击Commit (⌘K)
,可以批量进行提交。 -
批量Push
RubyMine 没有提供批量push的功能,我们可以通过git hooks 功能 设置为 commit 发生后自动push
在 .git/hooks 文件夹下创建 post-commit
文件,添加以下内容
1
2
#!/bin/sh
git push