耶温博客

前端包管理器

前端现在主流的包管理器就四个:npm、Yarn、pnpm、Bun。

npm

Node.js 自带的,不用额外装。优点是稳定、兼容性好,npm 仓库也是最大的。缺点就是慢、占空间。

npm install <package>
npm install <package> -D  # 开发依赖
npm update <package>
npm run <script>

适合:个人项目、不想折腾的。

Yarn

Facebook 出的,比 npm 快。有离线模式(装过的包可以离线再用),还有 PnP 模式能减少 node_modules 体积。

npm install -g yarn
yarn add <package>
yarn add <package> -D
yarn upgrade <package>
yarn run <script>

适合:团队已经在用、需要离线模式的。

pnpm

现在很火,快还省空间。用硬链接共享依赖,同一个包不用下载多次。比 Yarn 还快,磁盘占用也少。而且没有幽灵依赖问题,更安全。

npm install -g pnpm
pnpm add <package>
pnpm add <package> -D
pnpm update <package>
pnpm run <script>

适合:大型项目、Monorepo、磁盘空间不够的。

Bun

新出的,用 Zig 写的,速度快到离谱。不只是包管理器,还是完整的 JS 运行时(类似 Node.js 的替代品)。内置打包、测试工具,TypeScript 原生支持。

curl -fsSL https://bun.sh/install | bash
bun add <package>
bun add <package> -d
bun update <package>
bun run <script>

适合:新项目、追求性能的、愿意尝鲜的。生产环境慎重。

怎么选

特性 npm Yarn pnpm Bun
速度 ⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
空间占用
兼容性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐
Monorepo ⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐

简单说

  • 新手/个人项目 → npm
  • 中大型项目 → Yarn
  • 追求性能、Monorepo → pnpm
  • 新项目想尝鲜 → Bun

切换包管理器

都一样,删掉旧的装新的就行:

# 从 npm 换到 pnpm
rm -rf node_modules package-lock.json
npm install -g pnpm
pnpm install

# 从 npm 换到 Yarn
rm -rf node_modules package-lock.json
npm install -g yarn
yarn install

# 从 npm 换到 Bun
rm -rf node_modules package-lock.json
curl -fsSL https://bun.sh/install | bash
bun install

怎么看项目用了哪个

看锁文件:

  • package-lock.json → npm
  • yarn.lock → Yarn
  • pnpm-lock.yaml → pnpm
  • bun.lockb → Bun

相关文档