年轻人的第一个前端 monorepo 怎么选型 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GiantHard
V2EX    前端开发

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

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

    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     Solana     881 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 20:19 PVG 04:19 LAX 13:19 JFK 16:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86