父子两个相当于两个独立的项目,依靠“模块这种关系联系在一起,切分支都不会互相影响,最多是文件引用的时候文件缺失报错
因为有些功能是很多项目公用的,如果要做个比较复杂的项目,全都写到一个大项目里,就会越来越臃肿,那么就考虑拆分,拆分的时候有些部分是大家都需要的,比如登录,布局,那么就独立出一个子模块,大家都引用它,如果需要更新升级,大家拉一下就行,不需要每个人负责的项目里重新写一遍,有的比较成熟的,重要的,还会打个npm包,使用上就更方便了。子模块和npm包是两种东西,不同的用法,子模块其实是比较繁琐的 )
使用npm包的管理方式的话,安装的时候配置在package.json里,就比子模块的方法简单,也不用考虑文件夹的位置和命名的问题,都给你封装好了,如果是做成npm包了,那更新的时候npm update packageName (-D | -S)就行了,别的什么都不用管了,就很轻松
1---子模块
--先克隆外层,然后进入到项目中,执行 git submodule update --init
更新子模块代码-----git submodule update --remote 会在master分支上生成子模块的文件(这表示引用的子模块变化了,你的项目指针也多个记录),不用管,切到开发分支,会看到以master分支为基础创建的子分支会自动更新子模块,因为你更新的时候就是被引用的那个分支,比如common-module,正常情况下引用的应该是master分支,你拉的这个操作,所在的仓库,其实在本地的主体,就是主项目的那个子目录 该新生成的文件在在子分支上提交,再合并到master即可
以上是子模块的方法
2---Npm包
若是将子模块做成了Npm包,更新的时候更方便: 使用npm包的管理方式的话,安装的时候配置在package.json里
若是将子模块做成了Npm包,每次更新的时候执行npm update packageName (-D | -S)