從npm換成yarn需要注意什麼?
從 npm 轉移到 Yarn 是一個相對簡單的過程,因為它們都使用相同的 package.json 格式並共用 npm 的套件庫 (Registry)。不過,您需要注意以下幾個關鍵步驟和差異:
專案轉移步驟與注意事項 (Yarn Classic/v1)
1. 安裝 Yarn
首先,您需要將 Yarn 安裝到您的系統中。由於 npm 是 Node.js 預設的套件管理器,您可以使用它來安裝 Yarn:
# 全域安裝 Yarn Classic (v1)
npm install -g yarn
2. 清理現有的鎖定檔案和模組
為了確保新專案使用 Yarn 的鎖定機制,您需要移除 npm 生成的鎖定檔案和舊的 node_modules 資料夾。
-
刪除 npm 鎖定檔案:
rm package-lock.json
# 或在 Windows 上使用:del package-lock.json -
刪除 node_modules 資料夾 (可選但推薦):
rm -rf node_modules
# 或在 Windows 上使用:rmdir /s /q node_modules
3. 運行 Yarn 安裝
在您的專案根目錄下運行簡單的安裝命令。Yarn 會讀取 package.json,下載所有依賴項,並生成自己的鎖定檔案。
yarn install
# 簡寫:yarn
-
結果: 專案根目錄下會生成一個新的鎖定檔案:
yarn.lock。 -
重要: 請務必將
yarn.lock提交到您的版本控制系統中 (例如 Git),並移除舊的package-lock.json的追蹤。
核心指令差異比較
這是轉移後最需要習慣的部分。Yarn 的指令通常更簡潔、更直覺。
| 目的 | npm 指令 | Yarn 指令 | 備註 |
|---|---|---|---|
| 安裝依賴 | npm install | yarn install 或 yarn | 習慣上簡寫為 yarn 即可。 |
| 新增套件 | npm install <pkg> --save | yarn add <pkg> | Yarn 預設就會儲存到 package.json。 |
| 新增開發依賴 | npm install <pkg> --save-dev | yarn add <pkg> --dev | |
| 移除套件 | npm uninstall <pkg> | yarn remove <pkg> | |
| 運行腳本 | npm run <script> | yarn run <script> 或 yarn <script> | yarn test / yarn start / yarn build 等簡寫常用。 |
| 全域安裝 | npm install -g <pkg> | yarn global add <pkg> | |
| 決定性安裝 | npm ci (用於 CI/CD) | yarn install --frozen-lockfile | yarn install 在 CI/CD 環境下會自動使用此模式。 |
進階考量 (Yarn Berry/v2+)
如果您考慮升級到 Yarn 2.x (Berry) 或更高版本,會有更根本性的變化,需要額外注意:
-
Plug'n'Play (PnP) 模式:Yarn Berry 的預設模式,它不再生成龐大的
node_modules資料夾,而是使用.pnp.cjs檔案來映射依賴關係。-
優點: 安裝極快、佔用空間小、解決依賴提升問題。
-
注意事項: 一些舊的工具或編輯器外掛可能需要額外配置才能正常運作 (儘管生態系統支援已大幅改善)。
-
-
指令和配置檔案:
-
yarn install指令的行為在 PnP 模式下會有所不同。 -
配置檔案從
.npmrc或.yarnrc變為.yarnrc.yml(使用 YAML 格式)。
-
總結來說:
對於大多數現有專案,轉移到 Yarn Classic (v1) 主要就是刪除 package-lock.json 和改變指令。如果您的專案較大或包含多個套件 (Monorepo),Yarn 的 Workspaces 會是您轉移後最能感受到效率提升的功能之一。