微信搜索【GreatMovetotheWorld】,第一时间与大家分享前端行业动态、学习路径等。本文已收录到GitHubhttps://github.com/qq449245884/xiaozhi,里面有完整的测试站点、资料和我的一线厂商访谈系列文章。前言今天的文章主要是对比一下目前流行的Monorepo框架。Turborepo首先是Turborepo。上一篇只提到了Turborepo的用法。今天的文章会提到Turborepo的相关概念!Truborepo是一个相当轻量级的框架,可以快速构建Monorepo架构。该框架由知名工程师JaredPalmer开发,随后由知名的Vercel团队维护。虽然Turborepo是2021年才问世的比较新的框架,但以后可能会有很多问题和优化项目需要处理,但毕竟背后有vercel帮忙,所以读者可以配合使用有信心,不用担心XD和Turborepo总共有几个特性:Faster,incrementalbuilds:更快的构建速度。内容感知哈希:自动检查项目中的所有文件进行构建,而不是使用时间戳来确定需要构建哪些文件。云缓存:可以共享云构建缓存以加速CI/CD构建。并行执行:有效利用所有CPU核心的性能,不浪费空闲CPU的性能。Taskpipelines:定义任务之间的关系,让Turborepo可以最优的确定这些任务的构建时机。修剪子集:通过创建子集来加速平台即服务(PaaS)的部署性能。基于约定的配置:使用JSON文件来降低复杂性。有了以上的特性,Turborepo就可以成为一套简单易用的Monorepo框架,既易于使用,又具备项目性能。NxNx是一个非常易于使用的Monorepo框架。它有很多内置的有用工具供开发人员使用。大多数人也将这个框架与Turborepo进行比较。与Turborepo相比,Nx是2018年问世的,所以它在整体上肯定有更好的优化和更好的开发体验。接下来介绍几个我在使用这个框架时用到的好用的工具,以后想玩Nx的读者不妨试试这些功能。本地计算缓存:本地读取并缓存已经构建的内容,这样在后续的构建过程中就不需要再花时间构建之前的文件,从而加快项目的整体构建时间。项目图可视化:一个交互式图形界面,可以让开发者快速了解项目之间的依赖关系,并检查是否有任何repo引用了错误的repo。如果要在Turborepo中实现这件事情,就必须安装一个叫做Graphviz的工具,而这个工具只能生成模式,不能生成交互界面。taskcoordination:任务协调,项目repobuild的任务可以同步进行,从而加快整个构建过程。详细的内容会在下面介绍Lerna时为读者介绍。除了以上的特性,我觉得Nx还有一个特性是比Turborepo更好的。在终端的显示上,Nx给人一种清晰的感觉。您可以知道正在构建哪些文件,并且还有颜色区分。除了终端显示的差异,得益于构建时的本地缓存,Nx也优于Turborepo。与上面提到的Nx和Turborepo相比,LernaLernaMonorepo框架可以说是最老的了。它从2015年开始发布,Lerna包含了很多东西。可以说它建立了一套最完整的Monorepo架构基础。Lerna提供了很多可以使用的命令。两个最重要的命令是lernabootstrap和lernapublish。想了解更多命令的读者可以参考官网。我只介绍这两个有用的命令。lernabootstrap:用于链接项目中的依赖。lernapublish:用于发布更新包。还记得上面提到的任务协调吗?事实上,Lerna并没有一个相对优化的任务协调过程。一个任务完成后必须执行下一个任务。如果项目中的repo有依赖,整体构建时间会很长。然而,Turborepo和Nx都具有完美的任务协调效果。下图显示了一个简单的任务协调示例。相信读者应该能立刻感受到构建过程中的整体时间差异。不过,Lerna在最新的v5版本中加入了很多元素。最大的特点是可以和Nx结合,使用一些Nx才有的功能,比如:Localcomputationcaching、Projectgraphvisualization甚至taskcoordination等等,这样Lerna就不会因为进步而被淘汰时代。使用方法也很简单,只需要在根目录的lerna.json中添加条件useNx:true即可使用Nx的功能。当然,读者要记得安装Nx才能真正使用这些功能。总结本文介绍了React中比较主流的三大Monerepo框架。这三个框架各有优缺点,所以没有绝对的好坏之分。一切都可以根据自己的喜好来做。选择!不过由于作者自己写了React,所以也用了很多Vercel团队的工具,比如Next。Nx比较好用,所以打算写一篇文章比较各种常见的Monorepo框架,希望能帮助到和我一样有选择障碍的读者。XD编辑中可能出现的BUG,无法实时知道,为了事后解决这些BUG,花了很多时间在日志调试上。顺便推荐一个好用的BUG监控工具Fundebug。作者:AndyChen译者:小智来源:medium原文:https://medium.com/tarbugs/%E...交流有梦想,有干货,微信搜索【大千世界】关注这个还在刷中清晨洗碗智慧。本文已收录到GitHubhttps://github.com/qq449245884/xiaozhi,里面有完整的测试站点、资料和我的一线厂商访谈系列文章。
