位置: IT常识 - 正文

多项目版本管理:monorepo 策略(项目版本管理是什么)

编辑:rootadmin
多项目版本管理:monorepo 策略 monorepo 是什么

推荐整理分享多项目版本管理:monorepo 策略(项目版本管理是什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:项目版本管理 谁做,项目版本管理工具,项目版本管理 谁做,项目版本管理工具,项目版本管理考核指标如何写,项目版本管理 谁做,项目版本管理 谁做,项目版本管理工具,内容如对您有帮助,希望把文章链接给更多的朋友!

一个产品会有多个项目,每个项目之间会存在版本同步的问题,如何在其中一个项目发布上线后,保证每个项目版本升级后的版本同步问题,提出的解决方案就是 monorepo 策略。

monorepo 是一种将多个项目代码存储在一个仓库里的软件开发策略(mono 意为单一,repo 意为 仓库)。与之相对的是另一种流行的代码管理方式 MultiRepo,即每个项目对应一个单独的仓库来分散管理。

多项目版本管理:monorepo 策略(项目版本管理是什么)

无论是比如 Google、Facebook,还是社区内部知名的开源项目 Babel、Vue3都使用了 monorepo 方案来管理他们的代码。

通过 monorepo 策略管理代码的代码仓库的目录结构会是这样:

不过,monorepo 不只是将不同子项目的目录汇集到一个目录之下,实际上操作起来所要考虑的事情复杂得多。

monorepo 的优劣

monorepo 不是银弹,有优亦有劣:

易于代码复用:所有项目代码集中于单一仓库,易于抽离出共用的业务组件或工具,并通过 TypeScript,Lerna 或其他工具进行代码内引用;易于依赖管理:项目之间的引用路径内化于单一仓库,当某个项目的代码修改后,易于追踪其影响的是其他哪些项目。通过工具,易于版本依赖管理和版本号自动升级;并且所有的项目都是使用最新的代码,不会产生其它项目版本更新不及时的情况;易于代码重构:代码重构难在不确定对某个项目的修改是否对于其他项目是破坏性的。而 monorepo 使得能够明确知道代码的影响范围,并且能够对被影响的项目可以进行统一的测试,利于不断优化代码;倡导开放,透明,共享的组织文化,有利于开发者成长,代码质量的提升:monorepo 使得开发者都被鼓励去查看和修改他人的代码,同时,也会激起开发者维护代码,和编写单元测试的责任心(毕竟朋友来访之前,我们从不介意自己的房子究竟有多乱),这将会形成一种良性的技术氛围,从而保障整个组织的代码质量;不易于项目粒度的权限管理;额外的学习成本:monorepo 使得增加理清各个代码仓库之间的相互逻辑的成本;需要工具链和自动构建工具的支持:项目若很庞大且没有工具链的支持,那么 git 管理、安装依赖、构建、部署会很麻烦和耗时。比如可以基于 Lerna、Yarn Workspaces 等工具更加自动化的处理依赖包之间的构建和发布。

在实际场景来落地项目级别的 Monorepo,需要一套完整的工程体系来进行支撑,因为基于 Monorepo 的项目管理,不只是代码放到一起,还需要考虑项目间依赖分析、依赖安装、构建流程、测试流程、CI 及发布流程等诸多工程环节,同时还要考虑项目规模到达一定程度后的性能问题,比如项目构建/测试时间过长需要进行增量构建/测试、按需执行 CI 等等,在实现全面工程化能力的同时,也需要兼顾到性能问题。

Monorepo 如何落地1 锁定环境:volta or nvm

除了使用 Docker 和显式的在文档中

本文链接地址:https://www.jiuchutong.com/zhishi/290653.html 转载请保留说明!

上一篇:Axios简介(axios入门)

下一篇:命令行 cnpm install 报错: Install fail Error: Unsupported URL Type: npm:vue-loader@^15.9.7(命令行查看ip地址)

  • c# listview(C# listview 填写字符)

    c# listview(C# listview 填写字符)

  • 红米note11有耳机孔吗(红米note11耳机插上去没反应)

    红米note11有耳机孔吗(红米note11耳机插上去没反应)

  • 荣耀v40轻奢版语音助手怎么唤醒(荣耀V40轻奢版语音唤醒)

    荣耀v40轻奢版语音助手怎么唤醒(荣耀V40轻奢版语音唤醒)

  • 闲鱼可以更改收款账户吗(闲鱼可以改收款方式吗)

    闲鱼可以更改收款账户吗(闲鱼可以改收款方式吗)

  • vivo手机耳机插孔在哪(vivo手机耳机插上没有声音怎么回事)

    vivo手机耳机插孔在哪(vivo手机耳机插上没有声音怎么回事)

  • 快手个性化设置没有显示使用的音乐(快手个性化设置怎么设置开关)

    快手个性化设置没有显示使用的音乐(快手个性化设置怎么设置开关)

  • 三星w20不支持移动5g吗(三星w20能用移动卡吗)

    三星w20不支持移动5g吗(三星w20能用移动卡吗)

  • 小爱同学怎么更换网络(小爱同学怎么更改唤醒口令)

    小爱同学怎么更换网络(小爱同学怎么更改唤醒口令)

  • 充电屏幕不灵怎么解决(充电屏幕失灵怎么回事)

    充电屏幕不灵怎么解决(充电屏幕失灵怎么回事)

  • 苹果8plus长度(苹果8plus手机长度是几厘米)

    苹果8plus长度(苹果8plus手机长度是几厘米)

  • 不能完成计算机间互联的介质是(不能完成计算机间互连的介质是)

    不能完成计算机间互联的介质是(不能完成计算机间互连的介质是)

  • nike会员有什么用(nike会员有什么福利)

    nike会员有什么用(nike会员有什么福利)

  • 微信视频号如何发作品(微信视频号如何发到朋友圈)

    微信视频号如何发作品(微信视频号如何发到朋友圈)

  • qq恢复好友有提醒吗(qq的恢复好友会向对方发送申请吗)

    qq恢复好友有提醒吗(qq的恢复好友会向对方发送申请吗)

  • 华为p40关机充电为什么自动开机(华为p40关机充电充不进去怎么办)

    华为p40关机充电为什么自动开机(华为p40关机充电充不进去怎么办)

  • ouboo什么牌的手机(ovou什么牌子)

    ouboo什么牌的手机(ovou什么牌子)

  • 苹果的三包是指什么(苹果三包政策有哪三包)

    苹果的三包是指什么(苹果三包政策有哪三包)

  • 怎样减少字符间距(如何减少字符间距)

    怎样减少字符间距(如何减少字符间距)

  • 微控制器特点(微控制器的特点)

    微控制器特点(微控制器的特点)

  • 淘宝怎么开店铺步骤(淘宝怎么开店铺卖虚拟产品)

    淘宝怎么开店铺步骤(淘宝怎么开店铺卖虚拟产品)

  • 华为m5上市时间(华为m5首发价格)

    华为m5上市时间(华为m5首发价格)

  • 华为nova发热严重吗(华为nova发热严重是什么原因)

    华为nova发热严重吗(华为nova发热严重是什么原因)

  • 企业抖音号有什么好处(企业抖音号什么意思)

    企业抖音号有什么好处(企业抖音号什么意思)

  • 苹果xr不能设置动态壁纸吗(苹果xr不能设置指纹解锁吗)

    苹果xr不能设置动态壁纸吗(苹果xr不能设置指纹解锁吗)

  • 爱心代码李峋同款爱心 python html(爱心代码图)

    爱心代码李峋同款爱心 python html(爱心代码图)

  • element-ui动态表单和验证(elementui动态表单数据回显)

    element-ui动态表单和验证(elementui动态表单数据回显)

  • 织梦/dedecms TAG标签按栏目显示(只显示当前栏目标签)(织梦怎么样)

    织梦/dedecms TAG标签按栏目显示(只显示当前栏目标签)(织梦怎么样)

  • 财产转让所得个人所得税优惠政策
  • 无形资产减值准备可以转回吗
  • 企业为清算状态是什么
  • 其他应付款为负数
  • 取得预收租金应如何申报缴税
  • 销售费用变动率税收政策
  • 手撕定额发票不是免税怎么还报税
  • 小规模纳税人季报是哪几个月
  • 做账要不要入库单和出库单
  • 税务风险有哪些
  • 购买大型设备的会计科目
  • 员工拿发票报销可以公转私吗
  • 投资办厂协议
  • 制作费计入什么会计科目
  • 如何少交点税
  • 企业一次性补助金是多少标准
  • 非货币性资产交换准则
  • 个体户怎么申请核定征收
  • 卷烟批发环节消费税计算
  • 公司注销后资产属于谁
  • 租房合同开发票的金额要和合同一致吗
  • 房地产企业土地出让金抵减销项税额
  • 进项票月初收到能抵上月
  • 广告费用计入什么会计科目
  • 小规模企业亏损情况说明范文
  • php b/s
  • kprcycleaner.exe是什么
  • 短期借款利息的核算不可能涉及的账户是
  • 破产清算中欠发工资应否交个人所得税
  • 未担保余值是谁承担
  • vue打包成一个文件
  • php中常量名命名规范
  • html5旅游网页设计
  • 前端面试题必问的题目
  • 董事会会议中的会议内容
  • 小规模纳税人公转私技巧
  • 月末库存商品成本计算
  • 海关缴款书上完税价格含增值税吗
  • 国际货运操作流程图
  • 出售长期股权投资
  • 一般纳税人应交税费二级科目有哪些
  • 执行企业会计制度是什么意思
  • 一般纳税人增值税申报表怎么填写
  • 外币财务报表的折算
  • 残疾人保障金的工资按实发还是应发
  • 公司想自己开发票怎么申请
  • 余额调节表怎么填写例题
  • sql2008数据库mdf文件 恢复
  • Python3.6-MySql中插入文件路径,丢失反斜杠的解决方法
  • MySQL数据迁移到oracle
  • win8无法修复你的电脑
  • 电脑爆音卡死
  • wlanplus是什么软件
  • WZCSLDR.exe - WZCSLDR是什么进程
  • win8最多支持多大内存
  • centos怎么查看文件
  • 电脑重装win7系统黑屏
  • windowsxp如何隐藏文件
  • 电脑windows8怎么样
  • win7重新安装windows
  • win7打开文件总是询问
  • win8页面
  • shell在linux
  • 解决胃胀气最快方法
  • javascript如何调用
  • shell 方法调用
  • 事件委托jq
  • js扩展名是什么文件
  • js实现文本框输入功能
  • 计算两gps坐标之间距离
  • js实现网页收藏的方法
  • 各地市的税务局有哪些
  • 电子税务局登录不上,显示用户名不匹配
  • 国家税务局发票真伪查验平台
  • 深圳罗湖区公安局长安慧君简历
  • 国家税务培训信息网官网
  • 扬州税务学院住宿环境
  • 国税注销需要什么资料
  • 葫芦岛市税务局电话
  • 银行最新税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设