V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
moonrailgun
V2EX  ›  分享创造

整个活,康康看你的 node_modules 依赖有多重

  •  1
     
  •   moonrailgun ·
    moonrailgun · 2023-01-17 13:02:17 +08:00 · 3098 次点击
    这是一个创建于 455 天前的主题,其中的信息可能已经有所发展或是发生改变。

    灵感来自网络梗图:

    https://github.com/moonrailgun/node-modules-vision/raw/master/src/assets/heavy-object-en.webp

    看到这张图好多次了,每次都想看看我的 node_module 依赖有多重, 但是找不到类似的东西,所以周末花了点时间自己搞了一个。可以通过 lock 文件分析模块依赖关系,并以可视化形式展示出来。

    支持pnpm/yarn/npm

    在线地址: https://node-modules-vision.moonrailgun.com/

    预览:

    pS1c7dS.png

    16 条回复    2023-03-30 02:03:07 +08:00
    kongkongye
        1
    kongkongye  
       2023-01-17 13:13:43 +08:00
    ![20230117131239.jpg]( https://tva1.sinaimg.cn/large/006wFWOPly1ha6kkprx0jj324219ckal.jpg)
    这个是不更直观
    devswork
        2
    devswork  
       2023-01-17 13:18:51 +08:00
    TypeError: Cannot convert undefined or null to object
    nomagick
        3
    nomagick  
       2023-01-17 13:21:19 +08:00
    拿掉几个头部“开发者”的包之后依赖数量大概能缩小一个数量级
    nomagick
        4
    nomagick  
       2023-01-17 13:22:43 +08:00
    基金会也有 kpi , 下载量也需要刷,
    一个大项目带百八十个小项目,下载量成倍增加
    nomagick
        5
    nomagick  
       2023-01-17 13:23:49 +08:00
    从基金会拿钱也需要 kpi 我的意思是
    ccagml
        6
    ccagml  
       2023-01-17 13:26:06 +08:00 via Android
    有意思
    moonrailgun
        7
    moonrailgun  
    OP
       2023-01-17 13:33:26 +08:00
    @nomagick 6.涨知识了。但是说真的 node 生态属实是屁大点功能也要封装个包


    @devswork 欢迎提 issue ,康康 lock 文件我修下
    kongkongye
        8
    kongkongye  
       2023-01-17 13:47:44 +08:00 via iPhone
    成千上万个包组合在一起性能不低,不冲突,以及同时包含一个包的不同版本这这才是牛逼神奇的地方,放其他语言可能就做不到
    jfv
        9
    jfv  
       2023-01-17 14:10:12 +08:00
    自己写的开源音乐系统
    一个简单的 pwa 应用
    node_modules 大小是 627MB
    https://github.com/mebtte/cicada
    moonrailgun
        10
    moonrailgun  
    OP
       2023-01-17 17:00:51 +08:00
    @kongkongye 这就是树形依赖的优势与劣势。其他的如 go/java 等都是扁平依赖
    moonrailgun
        11
    moonrailgun  
    OP
       2023-01-17 17:06:41 +08:00
    @jfv 自己写的开源即时通讯应用,node_modules 1.6G

    [![2uHi3.png]( https://i.328888.xyz/2023/01/17/2uHi3.png)]( https://imgloc.com/i/2uHi3)

    打个 alpine 的镜像结果最后还是被 node_modules 撑到 1 个多 g

    https://github.com/msgbyte/tailchat
    weiguo161
        12
    weiguo161  
       2023-01-18 14:20:57 +08:00
    输入我们项目的 yarn lock 文件,直接崩溃了
    chuck1in
        13
    chuck1in  
       2023-01-18 21:01:59 +08:00
    之前用 typescript 写过一个 nodejs 用的对接第三方登陆的库,坚定贯彻了 0 运行时依赖的方针:
    https://github.com/chuck1in/nw-auth
    lrhtony
        14
    lrhtony  
       2023-01-18 23:49:04 +08:00
    npm lockfileVersion 为 3 的貌似不支持
    moonrailgun
        15
    moonrailgun  
    OP
       2023-01-20 22:52:27 +08:00
    @weiguo161 g6 辣鸡


    @chuck1in 开发依赖也是依赖 [狗头]


    @lrhtony 大佬方便提个 issue share 一下么?不方便就算了。
    Aloento
        16
    Aloento  
       2023-03-30 02:03:07 +08:00
    能否导出 pdf 或者图片或者 svg (
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3230 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:21 · PVG 22:21 · LAX 07:21 · JFK 10:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.