如果你刚接触前端工程化,第一次看到 npm install、yarn install、pnpm install,大概率会有一个疑问:
它们不都是“装包”的吗?为什么会有三个?
答案是:它们做的是同一件事,但解决问题的方式不一样。
npm是 Node.js 官方自带的包管理器,历史最久,生态最稳。Yarn是在 npm 早期体验不够好的时候出现的,重点解决“慢”和“不稳定”。pnpm是在 Yarn 和 npm 继续发展之后,进一步解决“磁盘浪费”和“依赖不严谨”的问题。
这篇文章不讲太多绕人的术语,只用一条主线讲清楚:
为什么会从 npm 发展到 Yarn,再发展到 pnpm?