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

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

  •  
  •   slowlyxixi · 47 天前 · 5197 次点击
    这是一个创建于 47 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    57 条回复    2024-12-15 10:21:11 +08:00
    xiaojun996
        1
    xiaojun996  
       46 天前   ❤️ 1
    已经用 pnpm 4 年了,第一次用它主要 2 个原因

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

    vscode 已经从 yarn 切换回 npm 。

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

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

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

    当然,还有秒开 monorepos ,用起来太过于舒服
    crocoBaby
        54
    crocoBaby  
       42 天前
    如果涉及到 cicd 的流水线的话,还是推荐 npm,yarn 其他 pnpm,bun 很多平台都不支持
    wangtian2020
        55
    wangtian2020  
       36 天前
    用 npm 。
    我不会遇到 npm 装不上包的问题。nrm 切 mirror 地址,遇到 github 资源下不动的直接 tun 模式代理启动。
    没感觉到有装包慢的问题,和 java 比下载 jar 包文件大编译又慢的 maven 体验好太多了。
    guobaxiong
        56
    guobaxiong  
       28 天前
    坚持 NPM 一百年不动摇
    andyhu
        57
    andyhu  
       10 天前
    如果是 node 就用 pnpm ,当然 bun 比 node + npm 好用很多,单纯从包管理来看 deno 比前面俩都好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5344 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 07:52 · PVG 15:52 · LAX 23:52 · JFK 02:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.