V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Bechbaliq
V2EX  ›  职场话题

你司是如何调试大型前端项目的?

  •  
  •   Bechbaliq · 2021-04-01 21:49:02 +08:00 via Android · 3162 次点击
    这是一个创建于 1092 天前的主题,其中的信息可能已经有所发展或是发生改变。
    git clone 下来好几个 G,从没在浏览器中做过 React Hooks 项目的调试和性能优化,向 v 站大神们取取经,有什么文章或者书籍可以推荐的,或者 learn by doing 类型的 blog
    第 1 条附言  ·  2021-04-02 08:01:59 +08:00
    因为 repo 包含几十个 apps 和 private npm packages,问题缩小一下,如何调试其中一个 app ?
    17 条回复    2021-04-09 11:07:16 +08:00
    maocat
        1
    maocat  
       2021-04-01 22:33:02 +08:00 via Android
    这,好几个 G,这是把 node_modules 上传了吗
    learningman
        2
    learningman  
       2021-04-02 01:16:01 +08:00 via Android
    加上 node_modules 也不能有几个 G 啊。。。
    noqwerty
        3
    noqwerty  
       2021-04-02 02:39:48 +08:00 via Android
    这是把静态资源一起放在 Git 里了吗,咋会这么大
    matthewzhong
        4
    matthewzhong  
       2021-04-02 07:39:21 +08:00 via Android
    几个 g 的代码,大厂大项目啊
    murmur
        5
    murmur  
       2021-04-02 07:54:03 +08:00
    好几个 g 估计不仅有 node_modules 、依赖库 binary,搞不好还有视频资源。。
    phobal
        6
    phobal  
       2021-04-02 08:48:41 +08:00 via iPhone
    只要有 sourcemap 就比较好调试,跟项目大小关系不是很大,顶多调用链路深一点儿。
    hooks 的性能问题的话,多检查一下 deps,方法能用 useCallback 包装的给包一下,变量能用 useMemo 包一下的给包一下
    tomczhen
        7
    tomczhen  
       2021-04-02 08:52:45 +08:00 via Android   ❤️ 2
    好几个 g 是因为现在前端流行 Monorepo 的方式管理项目代码,而不是传统的 MultiRepo,等半年之后 Monorepo 变成传统的管理方式就解决这个问题了。doge
    weixiangzhe
        8
    weixiangzhe  
       2021-04-02 09:00:26 +08:00 via iPhone
    Performance 录入流程,
    maichael
        9
    maichael  
       2021-04-02 10:00:51 +08:00
    @tomczhen #7 Monorepo 堆到几个 G 也是很过份了。强行 Monorepo 了
    maichael
        10
    maichael  
       2021-04-02 10:02:14 +08:00
    你们这个项目也不是突然一天内膨胀到现在这个规模的,难道逐渐膨胀的过程中你们一直以来都没有调试方法的?
    darksword21
        11
    darksword21  
       2021-04-02 10:11:41 +08:00
    @murmur 展开说说
    murmur
        12
    murmur  
       2021-04-02 10:27:25 +08:00
    @darksword21 没有,就是记得一个笑话,有一群工程师在开发无聊的时候踢耍游戏,但是当时找不到 u 盘,就把游戏上传到版本控制给大家分享,然后运维觉得奇怪,为什么这个 war 包这么巨大,打开一看里面有一个游戏的安装程序

    正常来说前端项目不会这么大,就算代码再多依赖是固定的,不会你写多了 webpack 几份,loader 几份,多的都是项目和资源

    4gb 的纯业务代码带依赖打成发布版,哪个浏览器跑的起来
    murmur
        13
    murmur  
       2021-04-02 10:28:13 +08:00
    *更正 4gb->好几个 gb
    *项目 -> 业务代码
    red2dog
        14
    red2dog  
       2021-04-03 12:23:38 +08:00
    你说的应该是那种一个主体项目+十几个自己写的工具库( babel 插件,webpack 插件之类的) 用 lerna 管理的项目吧。
    Bechbaliq
        15
    Bechbaliq  
    OP
       2021-04-04 19:37:34 +08:00 via Android
    @red2dog 不是,src/app 下好多个单独 app 那种
    pkupyx
        16
    pkupyx  
       2021-04-07 18:31:40 +08:00
    讲道理不可能全是代码吧。一行算你 100 字节,1GB=1e9=1KW 行?
    Bechbaliq
        17
    Bechbaliq  
    OP
       2021-04-09 11:07:16 +08:00
    @pkupyx #16 是真的,80 个 app,每个 app 里都包含前后端代码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2797 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 13:30 · PVG 21:30 · LAX 06:30 · JFK 09:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.