• 到底 TMD 用哪个: npm, pnpm, Yarn, Bun, Deno? 傻瓜, 当然用 npm 啦


    为什么?

    因为也就你这种小白才会看到标题点进来

    小白就有要小白的觉悟, 选市面上最主流的方式就对了

    最主流的意思是

    99% 的项目都在用 npm, 100% 的文档都会写 npm 的操作步骤

    So 先把 npm 用好再考虑其他的就行

    可是我听说 pnpm, Yarn 有 xxx 优点?

    傻瓜, 那些优点和你没关系

    你问一下自己:

    • 你电脑里有 100 个项目吗
    • 你每天都要构建 1000 次吗
    • 你的 CPU 负荷一直是 100% 吗
    • 你的硬盘空间马上就要爆了吗

    我司, 500 强美企, 在本月前(2026-05)还在用 npm

    其他工具的优点我们知道; 换工具后节省的百万级成本我们也想省; 那为什么我们坚持使用了 npm 10年+

    就是因为使用 npm 利大于弊

    可是我听说 npm 有 xxx 缺点?

    是的, npm 确实有缺点

    一个包管理器假如需要 100 个功能, npm 已经把其中 97 个做的很好, 另外 3 个也能用, 只是没那么完美

    朋友, 不要抓住缺点不放. 你了解到的那些观点, 只是其他工具的拥泵/布道者的营销话术(中性词), 不要被营销了呀

    再说了, npm 又不是一成不变, 它也在不断地吸取其他工具的优点, 克服自身的缺点

    等你真遇到了 npm 解决不了的问题再考虑其他的吧

    可是...

    哪有那么多可是, 你知道会有其他包管理器存在吗?

    它们只是解决了 npm 的某个痛点, 它们自身也有缺点

    其他工具使用的前提都是需要 99.99% 兼容 npm. npm 的那些命令/参数/格式已经变成了前端规范

    不管你用什么, npm 都是必须要会并且离不开的. npm 就是前端中的九阳真经, 你想想你到底掌握其中多少东西?

    比如:

    • 你知道 install 时怎么显示安装进度吗?
    • 怎么并行安装, 缩短安装时间?
    • 怎么只安装 dependencies 的依赖?
    • 怎么让 build 出来的包百分百符合 package-lock?
    • 为什么 install 后 package-lock 会变? 变了后应不应该 commit?

    有一种情况例外: 你要运行的项目中没有 package-lock

    看清楚项目中是什么 lock 文件, 一定要老老实实用对应的包管理器

    这篇文章你如果只能记住一句话, 我希望是上面这一句

    lock 文件 对应的工具
    package-lock.json npm
    pnpm-lock.yaml pnpm
    yarn.lock yarn

    千万不要信这种鬼话:

    这些都是包管理器而已, 用哪个都一样, 你想用那个用那个

    你如果信了, 那你就真是傻瓜了

    别问我是怎么知道的, 因为我以前就是那个傻瓜

    标题中的 Bun 和 Deno 怎么没讲?

    要不说你是小白, Bun Deno Node.js 这三个是竞品, 和 npm, pnpm, Yarn 根本就不是一个维度的东西

    当提到了 Bun 和 Deno 时, 那就已经跳出 Node.js 的范围了, 好比我在这篇文章中给你鬼扯一通 Rust Python Java 哪个好

    朋友, 听哥的, 不要再纠结这件事, 看完这篇文章后, 关闭你打开的所有类似页面/AI对话

    用节省下来的精力去用在真正重要的技术上不好嘛

    or

    早点下班, 享受下生活

  • 相关阅读:
    element vue表格单选
    计算机d3dx9_43.dll丢失怎么解决,简单的5个解决方法分享
    01.智慧商城——项目介绍与初始化
    高等数学(第七版)同济大学 习题9-6 个人解答
    ALPHA开发板网络方案说明
    目前世界上有多少种编程语言
    Java基础 | 反射机制详解
    c语言实现数据结构---堆
    计算机导论第十一周课后作业
    直到今天,信息孤岛依旧是各领域企业需要面对的问题
  • 原文地址:https://www.cnblogs.com/LeoLeeTech/p/20148026