🧶 一、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