前后端项目分仓存储时公共代码/函数的正确存储方式是什么?
跨前后端独立仓库共享公共函数的可行方案
下面是可落地的几种处理方式,你可以根据团队规模、公共函数迭代频率选择适配的方案:
- 方案1:搭建独立公共工具包仓库,发布为私有/公共npm包
把所有共用函数抽离到第三个独立Git仓库,按照npm包规范配置package.json,纯JS工具函数要做环境兼容处理,不要直接引入window(浏览器端专属)、process(Node.js端专属)这类单端API,需要调用时先做环境存在性判断。如果是内部团队使用可以发布到公司私有npm源,公开场景可以发布到npm官方源。前后端两个项目分别执行npm install 你的公共包名引入依赖即可,后续工具包更新后两端只要升级版本号就能同步更新逻辑。
优势:版本管理清晰,依赖引入简单,适合公共函数多、迭代频率高、团队规模大的场景 - 方案2:使用Git子模块(Git Submodule)嵌入公共代码
把共用函数抽离到第三个独立Git仓库,分别在React前端仓库和Node.js后端仓库中通过git submodule add 公共仓库地址 本地存放路径命令,把公共仓库作为子模块嵌入到两个项目的指定目录下,直接按本地文件相对路径引入公共函数即可。
优势:不需要搭建npm源、不需要走包发布流程,适合个人项目、公共函数少、迭代频率低的场景
注意点:子模块更新后需要两端手动执行pull操作拉取最新代码,要注意两边子模块的版本对应关系,避免出现版本不一致导致的报错。
选型避坑提示
强烈不建议在两个仓库分别复制粘贴同一份公共函数,后续迭代很容易出现两端逻辑不一致、bug修复不同步的问题。如果公共函数后续还有迭代需求,优先选择前两种方案。
内容的提问来源于stack exchange,提问作者Bear Bile Farming is Torture
相关产品推荐
相关产品推荐

