V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GiantHard
V2EX  ›  前端开发

年轻人的第一个前端 monorepo 怎么选型

  •  
  •   GiantHard ·
    ZeekoZhu · 2022-08-21 12:52:11 +08:00 · 2646 次点击
    这是一个创建于 860 天前的主题,其中的信息可能已经有所发展或是发生改变。

    TLDR;

    如果你正在为前端项目的 monorepo 寻找技术方案,我建议你试试 nx ,它提供了一系列的工具来帮助你实现 monorepo 中代码的模块化、标准化。

    我的 nx 实践体验可以总结为三点:

    1. 拆分模块,利用构建缓存、任务编排、增量构建提高构建速度
    2. 用样板代码生成器,保持各个模块代码结构上的一致性,减少创建、更新样板代码的手动操作,在规模庞大的 monorepo 中,这点尤其重要
    3. 复用执行器,为 monorepo 中所有的模块提供标准化的开发体验

    如果你感兴趣的话,不如看看 原文

    7 条回复    2022-09-13 15:09:10 +08:00
    wu67
        1
    wu67  
       2022-08-21 13:13:15 +08:00
    推广请发推广节点, 分享技术麻烦写点干货
    yikyo
        2
    yikyo  
       2022-08-21 15:16:24 +08:00 via iPhone
    最近再研究 pnpm workspace + changesets
    GiantHard
        3
    GiantHard  
    OP
       2022-08-21 15:32:45 +08:00
    @yikyo changesets 相关的内容我没太关注 ,我工作上的项目基本上不需要发布到 npm registry ,所以没有做项目本身的发布管理。
    GiantHard
        4
    GiantHard  
    OP
       2022-08-21 16:18:23 +08:00
    @wu67 感谢提醒,我只是 nx 的一个用户,文章写得像是在推广,但并不是推广,我下次注意避免写得像软文。

    ---

    网络上讨论 monorepo 优劣的文章很多,讲「怎么用 XXX 搭建 monorepo 」的文章也很多,我之前在做技术选型的时候也参考这些文章比较过各种实现方案的差异跟好坏。

    记得当时被 nx 打动的原因有两点:1. 构建缓存 2. 代码标准化。

    经过实践,我发现「代码标准化」确实给项目带来的长期收益更大。这也是我写这篇文章的出发点,向正在纠结技术选型的人展示 nx 如何通过代码标准化帮助你管理不同规模的 monorepo 。

    在打造适合自己项目的 monorepo 方案的时候,也可以从「代码标准化」这个角度来比较手头上的选择。
    ruanyu1
        5
    ruanyu1  
       2022-08-21 16:36:10 +08:00   ❤️ 2
    我的落地方案是 Turborepo + vercel remote cache ,changeset ,pnpm workspace
    a1248499257
        6
    a1248499257  
       2022-08-22 09:21:33 +08:00
    感觉我的比较老 lerna workspace + yarn
    liuzhaowei55
        7
    liuzhaowei55  
       2022-09-13 15:09:10 +08:00 via iPhone
    最近准备尝试一下 monorepo ,刚好也搜到了 nx
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2779 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:05 · PVG 18:05 · LAX 02:05 · JFK 05:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.