前端工程化 词条目录
前端Wiki/前端工程化/基础/包管理器

yarn 与 pnpm

npm 之外常见的包管理器是 yarn 与 pnpm。yarn 最早以快(并行下载、缓存)闻名;pnpm 则用“全局存储 + 软链接”方案,一个包只在磁盘存一份,几百个项目共享,磁盘占用能省 70% 以上。

三者命令几乎对应(install / add / remove / run),切换成本低。pnpm 还有个关键优点:严格的依赖隔离——你不能 import 没在 package.json 里声明的包(npm/yarn 的扁平 node_modules 做不到),这让“幽灵依赖”无处遁形。

  • pnpm:磁盘占用最低、依赖隔离最严格,新项目首选
  • yarn workspaces / pnpm -w:单仓库管理多个子包(Monorepo)
  • 三种管理器都有 lockfile,混用时认准一个、不要互相覆盖
npm
// 常用命令对照表
// 操作          npm              yarn          pnpm
// 安装全部依赖   npm install      yarn          pnpm install
// 装某个包       npm i axios      yarn add axios    pnpm add axios
// 装开发依赖     npm i -D vite    yarn add -D vite  pnpm add -D vite
// 删除包         npm rm axios     yarn remove axios pnpm remove axios
// 跑脚本         npm run dev      yarn dev          pnpm dev
// 临时执行       npx create-vite  yarn dlx create-vite  pnpm dlx create-vite

// pnpm Monorepo:pnpm-workspace.yaml 声明子包目录
// packages:
//   - 'packages/*'     // 每个子目录是一个子项目
//   - 'components/*'   // 子包间可互相引用,共享一套依赖
本节要点pnpm 省磁盘且防线严格(新项目首选);三个管理器命令一一对应,切换成本低。