最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Monorepo的实践落地

    正文概述 掘金(hzzly)   2021-04-26   487

    前言:最近针对项目代码仓库进行了一次重构,之前代码管理缺少规范和模块化的思想,也是借着项目重构这次机会重新规划代码仓库,实践落地了一种新的项目管理方式——Monorepo,Monorepo的管理概念跟我们规划的项目代码管理非常贴合,再加上我们新增的组件库及工具库,打造了一套比较完整的工作流。

    一些概念性的的东西这里就不多说了,不太了解 Monorepo 的可以自行 google 一下,这里就默认已经了解过了。

    要想从零开始定制一套完善的 Monorepo 的工程化工具,还是一件比较有难度的事情。不过社区已经提供了一些比较成熟的方案,我们可以拿来进行定制。

    在重构方案选择上,我们选择了业界比较成熟的 lernayarn workspaces,用 yarn 来处理依赖问题,用 lerna 来处理发布问题。

    仓库地址

    lerna

    我们看一下 lerna 官方的定位:A tool for managing JavaScript projects with multiple packages(一个用来管理带有多个package的JavaScript项目)。

    lerna不负责构建,测试等任务,它提出了一种集中管理package的目录模式,提供了一套自动化管理程序,让开发者不必再深耕到具体的组件里维护内容,在项目根目录就可以全局掌控,基于 npm scripts,使用者可以很好地完成组件构建,代码格式化等操作。

    安装

    npm install lerna –g
    //
    yarn add lerna global
    

    基本命令

    // lerna 项目初始化
    lerna init // 固定模式
    lerna init -i // 独立模式
    
    // 创建子项目
    lerna create [包名]
    
    // 清除所有子项目的依赖
    lerna clean
    
    // 安装所有依赖
    lerna bootstrap
    
    // 发布
    lerna publish
    

    重构的价值

    之前的代码管理非常的混杂,还是比较传统的代码目录结构,一些公共基础服务无法扩展复用,如下:

    // 之前的代码目录
    ├── package.json
    ├── README.md
    ├── tool // 项目打包编译配置
    ├── release // 打包目标文件夹
    └── src // 源代码
        ├── css
        ├── html
        ├── images
        ├── js
        └── sass
    

    重构后的代码结构无论是模块化还是复用性都很清晰,同时在代码规范上也比之前更规范了,如下:

    // 重构后的代码目录:
    ├── ... // 其它配置文件(代码规范)
    ├── package.json
    ├── README.md
    ├── lerna.json // lerna 配置文件
    └── packages // 分割的小项目
        ├── components
        ├── utils
        ├── ... // 多个业务模块
    

    总结

    • 将之前混杂的代码库分割为独立版本控制的小项目(项目更清晰)
    • 解决了包之间的依赖关系(新增了组件库以及工具库)
    • 通过git仓库检查到改动并自动同步(公共基础库的发布)
    • 根据提交的commit生成CHANGELOG版本日志文件(项目代码更规范)
    • TypeScript支持
    • 统一技术栈
    • 完善的工作流

    当然,lerna 还有更多的功能可以去发掘,还有很多可以结合 lerna 一起使用的工具。构建一套完善的仓库管理机制,可能它的收益不是一些量化的指标可以衡量出来的,也没有直接的价值输出,但它能在日常的工作中极大的提高工作效率,解放生产力,节省大量的人力成本。

    下篇就来聊聊组件库的那些事。


    起源地下载网 » Monorepo的实践落地

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元