🧶 一、Yarn 是什么?
Yarn 是由 Facebook(Meta)开发的 JavaScript 包管理工具,用于替代 npm,解决它在早期版本中存在的一些问题。
✅ Yarn 的优势(v1.x):
- 📦 更快:并行安装依赖包;
- 📂 更稳定:引入
yarn.lock锁定依赖版本; - 🛡️ 更安全:默认校验包的完整性;
- 💬 更清晰的输出日志。
🧑💻 二、Yarn 安装
✅ 使用 npm 安装(建议):
npm install -g yarn
安装完成后验证版本:
yarn -v
📌 三、Yarn 的常用命令对比 npm
| 操作 | npm 命令 | yarn 命令 |
|---|---|---|
| 初始化项目 | npm init / npm init -y | yarn init / yarn init -y |
| 安装所有依赖 | npm install | yarn install |
| 安装依赖 | npm install axios | yarn add axios |
| 安装开发依赖 | npm install eslint --save-dev | yarn add eslint --dev |
| 卸载依赖 | npm uninstall axios | yarn remove axios |
| 更新依赖 | npm update | yarn upgrade |
| 添加指定版本 | npm install axios@1.4.0 | yarn add axios@1.4.0 |
| 执行脚本 | npm run build | yarn build |
| 清缓存 | npm cache clean --force | yarn cache clean |
📁 四、Yarn 生成的文件结构
my-app/
├── node_modules/
├── package.json
├── yarn.lock ← 用于锁定依赖版本(等价于 npm 的 package-lock.json)
💡 五、Yarn vs npm:如何选择?
| 对比点 | npm | yarn |
|---|---|---|
| 默认安装 | ✅ Node.js 自带 | ❌ 需手动安装 |
| 安装速度 | ⏳ 稍慢(单线程) | ⚡ 更快(并行) |
| 锁版本文件 | package-lock.json | yarn.lock |
| 命令简洁性 | 需要 npm run xxx | 可以直接 yarn xxx |
| 社区支持 | 最广泛 | 稍弱(但稳定) |
| 易用性 | 更熟悉 | 语法更清爽 |
node_modules 构建 | 全部复制 | 更优化但可读性低 |
| 推荐场景 | 所有人 | 追求速度/现代化团队 |
🟨 注意事项:不要混用 npm 和 yarn
避免在同一个项目中混用两个包管理器,否则会出现依赖混乱:
- 只保留
package-lock.json(使用 npm) - 或只保留
yarn.lock(使用 yarn)
建议团队协商统一使用一种。
🎯 总结推荐
- 初学者 / 官方推荐 / 保守选手 👉 使用
npm - 追求构建速度 / 命令简洁 / CI 优化 👉 使用
yarn