V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
slowlyxixi
V2EX  ›  Node.js

2024 年了你在用 npm / yarn / pnpm ?以及为什么?

  •  
  •   slowlyxixi · 9 天前 · 3993 次点击

    从 npm 到 yarn ,最近爱上了 pnpm 。

    54 条回复    2024-11-13 11:50:40 +08:00
    xiaojun996
        1
    xiaojun996  
       9 天前   ❤️ 1
    已经用 pnpm 4 年了,第一次用它主要 2 个原因

    1. 不会有幽灵依赖
    2. 节约硬盘空间,有个 global 的 store 存 package
    DICK23
        2
    DICK23  
       9 天前
    用的 bun,就为了 install 的时候提示信息少
    weijancc
        3
    weijancc  
       9 天前
    Yarn, 以后有重新安装依赖会使用 bun, pnpm 之前用过一段时间, 但会出现打包后出现样式丢失的情况, 遂放弃
    renmu
        4
    renmu  
       9 天前 via Android
    个人项目都转 pnpm 了
    jisuowei
        5
    jisuowei  
       9 天前   ❤️ 7
    y a r n, 可以两只手各敲两个字母,p n p m 一只手挺累的,手动狗头
    IvanLi127
        6
    IvanLi127  
       9 天前
    特简单的项目用 npm ,懒得折腾;日常用 pnpm ,感觉很好;支持 bun 运行的用 bun ,感觉也很好。 yarn 1 感觉没啥特别的地方,不怎么用。
    x009ba1
        7
    x009ba1  
       9 天前   ❤️ 1
    yarn ,因为标志是猫咪
    gp0119
        8
    gp0119  
       9 天前
    @jisuowei #5 zsh-abbr
    crysislinux
        9
    crysislinux  
       9 天前 via Android   ❤️ 1
    我要坚持 npm 不动摇
    kzfile
        10
    kzfile  
       9 天前
    用 npm ,因为没有频繁拉包的需求,npm 似乎也没啥问题
    kkocdko
        11
    kkocdko  
       9 天前   ❤️ 4
    npm

    vscode 已经从 yarn 切换回 npm 。

    当你使用 npm 时,其他包管理器都要声称“兼容 npm”,你使用的是一个公认的子集,一个最大公约数,任何你这能跑但别人不能跑的东西,都是别人的责任。
    fov6363
        12
    fov6363  
       9 天前
    pnpm 提供的 monorepo 能力太棒了
    zhhqiang
        13
    zhhqiang  
       9 天前
    维护项目
    DOLLOR
        14
    DOLLOR  
       9 天前
    用 npm 。
    每次安装、更新好依赖就打包成 node_modules.7z ,确保时间、空间上的一致性。
    xqk111
        15
    xqk111  
       9 天前
    npm ,懒得折腾
    liuliumei
        16
    liuliumei  
       9 天前
    pnpm monorepo
    Nyeshuai
        17
    Nyeshuai  
       9 天前
    正常的跟时间走的用 pnpm, 老的还是 npm 控在文件夹内省些麻烦
    huijiewei
        18
    huijiewei  
       9 天前   ❤️ 1
    @DOLLOR 惊呆,就没考虑二进制平台兼容性么
    molvqingtai
        19
    molvqingtai  
       9 天前
    使用 pnpm ,npm 依赖问题太多了
    mandex
        20
    mandex  
       9 天前
    yarn
    维护的都是老项目,懒得动
    shuxhan
        21
    shuxhan  
       9 天前
    yarn 习惯了
    sworld233
        22
    sworld233  
       9 天前
    一直用 pnpm
    tyrone2333
        23
    tyrone2333  
       9 天前
    pnpm 跑很多老项目会有依赖问题运行不起来, 一直用 yarn
    Jinnrry
        24
    Jinnrry  
       9 天前
    npm +1
    dcsuibian
        25
    dcsuibian  
       9 天前 via Android
    npm 。其实我不是很在意那点硬盘空间,有代理的话下包其实也不会太慢。
    npm 主要好在它是自带的,有 node 就有 npm 。别人下了我的项目不用多余的步骤就能运行。
    但是其实 yarn 和 pnpm 我也在用,只不过是二开的项目,这种就是纯粹的作者用啥我用啥嘞
    sn0wdr1am
        26
    sn0wdr1am  
       9 天前
    我支持 pnpm 做话事人,因为他好用,省事。
    TimPeake
        27
    TimPeake  
       9 天前
    新项目用 pnpm ,老项目没法用, 只能无奈 npm
    54xavier
        28
    54xavier  
       9 天前
    npm => cnpm => yarn => pnpm => nrm => npm
    flyinghigherair
        29
    flyinghigherair  
       9 天前
    除非特殊情况,否则都是用安装 nodejs 时自带的 npm ,不喜欢装一大堆东西
    gogogo1203
        30
    gogogo1203  
       9 天前
    必须是 pnpm, 因为快啊。npm i 要半天,换了 taobao 节点也不行。
    alias 永久改成 p, 每次都是 p i, p i , p i
    xlinux
        31
    xlinux  
       9 天前
    @54xavier nrm ?不是同一个东西阿,怎么对比?
    oner
        32
    oner  
       9 天前 via iPhone
    npm 从来没换过
    jinliming2
        33
    jinliming2  
       9 天前
    @dcsuibian #25
    @flyinghigherair #29
    Node 现在自带了 corepack ,相当于 npm 、yarn 、pnpm 都自带了。package.json 里有 packageManager 字段的话会强制使用指定的包管理工具。
    dcsuibian
        34
    dcsuibian  
       9 天前 via Android
    @jinliming2 我知道,但这个东西是实验性的,而且得在 node 16.13 以上才能用。
    而且确实属于多余的步骤。
    Kobayashi
        35
    Kobayashi  
       8 天前   ❤️ 1
    @jisuowei alias yarn=pnpm 不用谢我朋友
    lerry
        36
    lerry  
       8 天前
    npm 没啥问题,速度很快
    shizhibuyu2023
        37
    shizhibuyu2023  
       8 天前
    @jisuowei #5 赶紧装上 ni 吧
    ob
        38
    ob  
       8 天前 via Android
    各种用 yarn 的都用哪个版本?
    Bingchunmoli
        39
    Bingchunmoli  
       8 天前 via Android
    用 yarn 因为早期 npm 和 cnpm 问题太多了,一直都用 yarn 了
    CLMan
        40
    CLMan  
       8 天前
    最开始是用 npm ,属于入门阶段。然后尝试了 yarn ,它的特色是`Zero-installs`,但是个人项目用不到。最后尝试了 pnpm ,被它的执行速度和 0 学习成本(对于 npm 的兼容性很好)所吸引,就停在了 pnpm 。

    最近尝试了 bun ,主要是用来当作 TS 的解释器来用,也用来写一些脚本类型的项目,因为它提供的 API 比 Node.js 的 API 更加友好,冷启动速度也更快。

    测试过 bun 和 node.js 在 Linux 作为自己的一个后端 JS 程序的 Runtime ,两者(JIT 暖机后)性能、内存占用基本一致,没什么差距。
    shiny
        41
    shiny  
       8 天前
    bun 从刚出来就开始用。一开始有各种各样的问题,到现在问题很少了。开始在服务器上也运行它。
    只有在兼容性遇到问题才会回退到 pnpm ,再不行才是 npm 。这些情况都很少遇到。
    ByteCat
        42
    ByteCat  
       8 天前
    之前用 pnpm ,公司项目用 pnpm ,现在自己玩已经换 bun 了,心智负担低
    pcdd
        43
    pcdd  
       8 天前
    之前 pnpm ,现在 bun
    tnxg
        44
    tnxg  
       8 天前
    pnpm ,速度快,报错相对较少 www
    pcdd
        45
    pcdd  
       8 天前
    2024 了,推荐用更现代的 bun
    subframe75361
        46
    subframe75361  
       8 天前
    小项目 bun ,大一些的用 pnpm
    54xavier
        47
    54xavier  
       8 天前
    @xlinux 不是对比,是箭头路径的意思,就是说我从 npm 换了一圈最后还是换回了 npm
    xlinux
        48
    xlinux  
       8 天前
    @54xavier 那跟 NRM 有啥关系?
    wuoty
        49
    wuoty  
       8 天前 via Android
    用 yarn ,之前用 npm 的时候一些大项目下,性能跟不上,总是卡半天; pnpm 在处理依赖会有些问题,要么就是版本冲突,依赖找不到,要么就是打包的时候丢东西
    siweipancc
        50
    siweipancc  
       8 天前 via iPhone
    用其他包管理器发现依赖处理有问题。
    作者:我只保证 npm
    uni
        51
    uni  
       8 天前
    优先用 bun ,出问题了再用 pnpm
    现在看到一个项目还在用 yarn 就会下意识地觉得这个项目已经过时了,会失去对这个项目的好感
    perfectlife
        52
    perfectlife  
       8 天前 via Android
    @fov6363 插个题外话 monorepo 做 cicd 痛苦啊
    Terry05
        53
    Terry05  
       8 天前
    一用上 pnpm 就离不开了,速度快,提示信息友好,说是能节省磁盘空间,懒得去考证,但看到 node_modules 里很多库都是软链接的,相信是能节省空间

    当然,还有秒开 monorepos ,用起来太过于舒服
    crocoBaby
        54
    crocoBaby  
       4 天前
    如果涉及到 cicd 的流水线的话,还是推荐 npm,yarn 其他 pnpm,bun 很多平台都不支持
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3008 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:44 · PVG 21:44 · LAX 05:44 · JFK 08:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.