前端-npm和yarn的区别

1. 安装方式

  • npm:随 Node.js 一起安装,自带。

  • Yarn:需要单独安装(用 npm 或下载安装包)。


2. 速度和性能

  • Yarn(最初优势)

    • 使用 并行安装,速度比早期的 npm 快很多。

    • 通过 缓存机制(离线模式)加速再次安装。

  • npm(后来追上)

    • 从 npm v5 开始引入 package-lock.json,也支持并行安装,速度已接近 Yarn。

3. 锁文件

  • npm :生成 package-lock.json

  • Yarn :生成 yarn.lock

    🔑 都是用来锁定依赖版本,确保团队环境一致。


4. 命令差异

虽然大多数命令相似,但有些区别:

功能 npm 命令 yarn 命令
安装依赖 npm install yarn install
安装包 npm install axios yarn add axios
安装开发依赖 npm install axios -D yarn add axios --dev
删除包 npm uninstall axios yarn remove axios
全局安装 npm install -g xxx yarn global add xxx
运行脚本 npm run serve yarn serve

👉 Yarn 少了 run,更简洁。


5. 确定性与一致性

  • Yarn:设计之初就强调"确定性安装",确保任何机器、任何环境安装的依赖结果完全一致。

  • npm :后来通过 package-lock.json 才做到类似的效果。


6. 工作区 (Workspaces)

  • Yarn :内置支持 Monorepo(多包项目) 管理。

  • npm:npm v7 才开始支持 Workspaces,但生态还不如 Yarn 稳定。


7. 社区与生态

  • npm:历史更悠久,用户基数更大,社区生态成熟。

  • Yarn:Facebook 推出,Vue、React 等大项目曾推荐使用,但后来很多团队也回归 npm。


8. 总结

  • 如果是 新手 / 小项目:npm 完全够用,不用额外装 Yarn。

  • 如果是 大项目 / Monorepo 管理:Yarn(特别是 Yarn v2/v3)更好。

  • 两者安装的包都来自 npm registry,兼容性没问题。


👉 一句话总结:
npm 是默认的,Yarn 是优化过的选择。随着 npm 的更新,它们的差距已经没那么大了。