pnpm又是啥?一文了解和npm,yarn的区别

344 阅读2分钟

随着vite项目的逐渐增加,pnpm也走入了大家的视野

在很多新项目中,都是用的pnpm来替代了npm或者yarn

那么pnpm到底是什么,和npm比有哪些优劣呢?

1. pnpm的特点------节省磁盘空间

使用 npm 时,依赖每次被不同的项目使用,都会重复安装一次。  而在使用 pnpm 时,依赖会被存储在内容可寻址的存储中

  1. 如果你用到了某依赖项的不同版本,只会将不同版本间有差异的文件添加到仓库。 例如,如果某个包有 100 个文件,而它的新版本只改变了其中 1 个文件。那么 pnpm update 时只会向存储中额外添加 1 个新文件,而不会因为单个改变克隆整个依赖。
  2. 所有文件都会存储在硬盘上的某一位置。 当软件包被被安装时,包里的文件会硬链接到这一位置,而不会占用额外的磁盘空间。 这允许你跨项目地共享同一版本的依赖。

因此,你在磁盘上节省了大量空间,这与项目和依赖项的数量成正比,并且安装速度要快得多!

image.png

pnpm官网链接:https://pnpm.io/zh/motivation

2. yarn的特点------lock文件

通过 yarn.lock 严格锁定依赖版本,保证不同环境安装的一致性

3.适用场景

  • npm:Node.js 原生工具,适合小型项目或需与 npm 生态深度集成的场景(如发布包)。
  • yarn:适合需要快速安装、注重依赖一致性的项目(尤其早期版本);yarn 2+ 适合追求极致性能或尝试新机制的团队。
  • pnpm:推荐用于中大型项目、多包 Monorepo 或对磁盘空间 / 安装速度敏感的场景(如前端工程化、微前端)

image.png