构建一个多平台项目用 git submodule 还是 npm private package?
场景
想象一下开发一个 app:
- 后端用 express.js
- 前端用 vue.js
- 还有客户端版用 electron 制作的离线版本 大概是这样:
咋一看是不是三个项目?!
好戏现在开始! 第一 3个 项目有一部分的代码是通用的 (比如: 算法 第二 只有一个团队没有分工,每个人都有3个项目要编程
现在想象一下你是 CTO (技术总监),你会这么安排这个项目???
** 同事A提议用 npm 解决: ** 建立 4个 项目:
- electron 项目
- 网页 vue 项目
- 服务器 express 项目
- 一个 common 项目
common 是个npm模块,其他项目都可以 npm install 这个模块
网页和后段也模块化,electron 只负责加载服务器和网页的模块
** 同事B提议用 npm 解决 ** 建立 4个 项目:
- electron 项目
- 网页 vue 项目
- 服务器 express 项目
- 一个 common 项目
用 submodule 方式解决 它们之间的依赖性, 比如
服务器 express 项目
|- common 项目
|- src
| |- 其他文件 ....
|- 其他文件 ...
网页 vue 项目
|- common 项目
|- src
| |- 其他文件 ....
|- 其他文件 ...
2 回复
npm private package
企业级开发多数都会使用npm包吧,这个通用模块还可以继续划分成更多的微模块发布并迭代,供其他项目组装。个人项目嫌麻烦可以采用submodule,可以灵活修改。