位置: 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地址)

  • 退税收入如何做账
  • 少数股东损益是
  • 金税四期上线了吗什么时候上线
  • 利润表的调整
  • 增值税专用发票使用规定 最新
  • 台账和明细账的区别
  • 跨境电商的钱怎么到账
  • 职工薪酬包括哪三个方面
  • 购买金蝶软件计入什么费用
  • 销售商品发生的运费计入什么科目
  • 商业企业购货分录
  • 公司没有设年终奖要报税吗
  • 计提销项税的同类有哪些
  • 代扣代缴企业所得税账务处理
  • 一个项目可以有几个单位工程
  • 一般纳税人转为小规模2022政策
  • 跨区域预缴企业所得税
  • 小规模纳税人贷款利息收入增值税税率
  • 如何找确定劳动关系的证据
  • 第二年缴纳税控盘服务费入什么科目?
  • 抵扣发票勾选到哪个科目
  • 小微企业 2021
  • 员工垫付费用多久报销合理
  • 全额抵扣的发票怎么申报增值税
  • 债券利息收入的分录
  • 计提跌价准备会影响利润吗
  • 公司支出的消防费用
  • 生产企业出口退税全部流程
  • 抵扣农产品进项税时,也要抵扣运费吗
  • 存货周转率公式怎么算
  • vscode怎么开始编程
  • fsck是什么文件
  • php ajax 实现
  • php 操作mysql
  • php jsondecode
  • 企业所得税教育经费列支范围
  • 委托代销商品发票是谁开给客户
  • vue实现pdf下载
  • 进口货物完税价格怎么算
  • 正则表达式在线生成器
  • 基于区块链技术的什么特征可建立卷烟信息数据查询系统
  • 微信小程序实现支付功能
  • php哪本书最好
  • 小微企业免征增值税优惠
  • 当月计提的公积金怎么取
  • 外贸企业账务处理方法
  • for循环语法结构是什么
  • 手机银行对公账户转账要手续费吗
  • 用友T3财务报表没有数据
  • sql server2014使用
  • mysql基本查询
  • 其他综合收益算当期损益吗
  • 广告费的税费分录
  • 期间费用怎么区分
  • 上年度记错科目怎么调整
  • 银行利息增值税发票申请单怎么填
  • 递延收益确认的递延所得税资产有期限吗
  • 财务费用利息收入怎么记账
  • 资产负债表不平最简单的方法
  • sql语句执行顺序怎么写
  • mysql绿色版配置
  • Win7旗舰版系统文件名称
  • WIN7系统屏幕亮度哪里设置
  • win8无法识别的usb设备 怎么解决
  • 无法ping通虚拟机
  • 无线网络连接不上显示无ip分配
  • 根据自己的需求配置一台电脑
  • crontab环境变量不生效
  • win10预览版和正式版
  • cocos2djs教程
  • javascript 引入
  • 脚本并行
  • python数字图像处理库
  • 高仿微信本地图片违法吗
  • Python实现以时间换空间的缓存替换算法
  • Android之SQLite
  • JavaScript的函数定义
  • jquery控制css样式
  • 医保所属期起和所属期止
  • 深圳税务局关于个体户开具普通发票有关问题的通知
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设