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

  • 华为手机锁屏键怎么设置到桌面(华为手机锁屏键按不动了怎么办)

    华为手机锁屏键怎么设置到桌面(华为手机锁屏键按不动了怎么办)

  • 华为mate20充电多长时间(华为mate20充电多少分钟)

    华为mate20充电多长时间(华为mate20充电多少分钟)

  • 苹果手机发朋友圈怎么显示位置(苹果手机发朋友圈视频变色怎么回事)

    苹果手机发朋友圈怎么显示位置(苹果手机发朋友圈视频变色怎么回事)

  • 移动充值卡不能充支付宝了(移动充值卡不能用)

    移动充值卡不能充支付宝了(移动充值卡不能用)

  • 要关闭正在运行的程序窗口可以按什么组合键(要关闭正在运行的窗口可以按什么键)

    要关闭正在运行的程序窗口可以按什么组合键(要关闭正在运行的窗口可以按什么键)

  • excel怎么制作图表(Excel怎么制作图像)

    excel怎么制作图表(Excel怎么制作图像)

  • 手机屏变紫色怎么处理(手机屏变紫色怎么回事)

    手机屏变紫色怎么处理(手机屏变紫色怎么回事)

  • 荣耀8x返回键怎么设置(荣耀8x如何设置返回键)

    荣耀8x返回键怎么设置(荣耀8x如何设置返回键)

  • 设置字符的格式时,字体指定字符的什么(设置字符格式用什么操作)

    设置字符的格式时,字体指定字符的什么(设置字符格式用什么操作)

  • 呼叫转移打不开一直转(苹果手机呼叫转移打不开)

    呼叫转移打不开一直转(苹果手机呼叫转移打不开)

  • volte4g是什么手机(volte4g智能手机)

    volte4g是什么手机(volte4g智能手机)

  • word文档怎么画点画线(word文档怎么画线条)

    word文档怎么画点画线(word文档怎么画线条)

  • iphone11pro怎么修改解锁密码(iphone11pro更换)

    iphone11pro怎么修改解锁密码(iphone11pro更换)

  • 华为nove5p耳机孔在哪(华为nove5耳机插孔)

    华为nove5p耳机孔在哪(华为nove5耳机插孔)

  • 饿了么可以跨省订餐么(饿了么可以跨省点外卖吗)

    饿了么可以跨省订餐么(饿了么可以跨省点外卖吗)

  • 苹果双卡短信怎么区分(苹果双卡短信怎么发)

    苹果双卡短信怎么区分(苹果双卡短信怎么发)

  • 华为手环3怎么开蓝牙(华为手环3怎么开机)

    华为手环3怎么开蓝牙(华为手环3怎么开机)

  • 华为mate30与p30对比(华为mate30跟p30)

    华为mate30与p30对比(华为mate30跟p30)

  • 焦距8mm能看多远(焦距8mm和6mm哪个好)

    焦距8mm能看多远(焦距8mm和6mm哪个好)

  • 骁龙710性能如何(骁龙710什么水平)

    骁龙710性能如何(骁龙710什么水平)

  • 手机如何打开url(手机如何打开url格式)

    手机如何打开url(手机如何打开url格式)

  • 卫星天线接头正确接法(卫星天线接线头)

    卫星天线接头正确接法(卫星天线接线头)

  • flex布局 多种方法让两个盒子分布在左右两边(flex的几个常用布局)

    flex布局 多种方法让两个盒子分布在左右两边(flex的几个常用布局)

  • 圣胡安群岛,华盛顿州 (© Stephen Matera/Tandem Stills + Motion)(圣胡安岛战争)

    圣胡安群岛,华盛顿州 (© Stephen Matera/Tandem Stills + Motion)(圣胡安岛战争)

  • 大数据现在找工作难么(大数据找工作好找吗)

    大数据现在找工作难么(大数据找工作好找吗)

  • enable命令  启动或关闭 shell 内建指令(@enable)

    enable命令 启动或关闭 shell 内建指令(@enable)

  • 小规模纳税人的进项税额怎么处理
  • 计提房产税要含税吗
  • 自然人独资公司有章程吗
  • 公司不开票的收入
  • 广告公司收到的信息技术发票计入什么科目
  • 增值税一般纳税人证明文件
  • 境外分回的股息并入应纳税所得
  • 退回房租含税的情况怎么入账?
  • 无形资产研究阶段的支出全部费用化
  • 银行承兑汇票置换业务自签发之日起新票的最长期限为
  • 国家税务局定额发票验证
  • 零申报的企业年末的利润表可以为零吗?
  • 公司购酒的发票可以开多少
  • 建筑物拆除物资包括哪些
  • 海关增值税当月可以抵扣吗
  • 收到押金和支付押金的账务处理
  • macos升级报错
  • 维尔登的心结
  • 获取当前位置被拒怎么办
  • 电子商票到期后多少天有效?
  • 既征增值税又征消费税的是
  • nginx apache php
  • h5调用海康摄像头
  • PHP:imagefilltoborder()的用法_GD库图像处理函数
  • 企业租赁发票税率是多少2023年
  • framework怎么用
  • 德国楚格峰一日游攻略
  • php include和include_once
  • 银行承兑汇票背书什么意思
  • 个人往来款如何转为公司股权
  • wordpress标签tag文章
  • 修的公路是否上固定资产
  • 个体户按季申报吗
  • 补充医疗保险属于什么
  • mongo mysql区别
  • 预收的贷方余额表示什么
  • 报税是按照实际收入还是开票
  • 职工福利费的开支范围的规定扣除
  • sqlserver2008数据库还原
  • access数据库提示升级
  • sql server row_number over
  • 个人出租不动产增值税优惠政策
  • 一般劳务报酬个人所得税退税吗
  • 一般纳税人适用3%税率情况
  • 不动产租赁如何避税
  • 发票已到材料未到会计分录
  • 开发成本期末如何结转
  • 汽车销售公司办理贷款重点调查哪些
  • 产品成本计算中最基本的方法是
  • 单位食堂油烟机多长时间清洗一次
  • 坏账准备的会计分录例题
  • 本年利润的会计科目代码
  • 每月可以先报税再缴费吗
  • 锅炉设备销售
  • 投资收益下期间怎么结转
  • mysql中间件有哪些
  • Windows Vista和Windows 7对比
  • linux将文件a.txt更名为b.txt
  • win传统桌面
  • 如何把windowsxp换成windows7
  • vi编辑器是干什么的
  • fpassist.exe是什么进程 有什么作用 fpassist进程查询
  • korok是什么文件
  • win10怎么分屏操作
  • 安卓手机好用的笔记类app
  • perl -p -i
  • perl cgi
  • Unity3D游戏开发毕业论文
  • 浏览器修改js变量
  • 微信小程序tabbar颜色
  • jquery常用
  • 怎么在html中调用js的函数
  • Python 正则表达式的高级用法
  • 动态表单的设计与实现
  • python获取linux磁盘信息
  • 个人房屋出租给公司怎么开发票
  • 锐志2.5新车报价
  • 江西公积金提取代办
  • 代理记账公司前期准备流程
  • 企业完税证明怎么查询真伪
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设