從 npm 遷移
對多數使用者來說,從npm遷移的過程應該非常簡單。Yarn和npm使用相同的package.json
格式,而且Yarn可以從npm安裝依賴包。
如果你打算在現有專案中嘗試Yarn,只需執行:
yarn
Yarn將通過自己的解析演算法來重新組織node_modules
目錄,這個演算法和node.js 模組解析演算法
是相容的。
如果出錯,請查閱issue列表,或者向Yarn issue tracker 報告。
執行yarn
命令或者yarn add <package>
命令後,Yarn都會在專案根目錄下生成yarn.lock
檔案。 你無需理解此檔案的具體內容,但請記得將其提交到程式碼管理系統。 當其他開發者也從npm
遷移到Yarn時,yarn.lock
檔案的存在會確保他們得到的依賴包與你的完全相同。
多數情況下,第一次執行yarn
或者yarn add
都會成功。 有些情況下,package.json
檔案裡的資訊不足以找出冗餘依賴,Yarn安裝依賴時採用的確定性演算法就會導致依賴衝突。 這種情況常常出現在那些由於npm install
執行出現問題,node_modules
資料夾被多次刪除,並重新安裝的大型專案裡。 如果發生這種情況,請在遷移到Yarn前嘗試使用npm
命令來讓依賴的版本更明確。
專案的其他開發者可以繼續使用npm
,所以無需讓每個人同時遷移。 使用yarn
會讓開發者得到完全相同的配置,而使用npm
卻未必,但這是npm
的預期行為。
如果你之後發現Yarn並不適合自己,你無需任何特別修改就能遷移回npm
。 如果專案裡所有人都不再使用Yarn,就可以刪除yarn.lock
檔案(但不是必須)。
如果專案目前使用了npm-shrinkwrap.json
檔案,請小心你可能會得到一組不同的依賴。 Yarn不支援npm shrinkwrap檔案,因為檔案裡沒有足夠的資訊來支撐Yarn的確定性演算法。 所以如果專案正在使用 shrinkwrap 檔案,那麼團隊成員同時遷移到Yarn可能會更容易一點。 只需刪除現有的npm-shrinkwrap.json
檔案,並提交新建立的yarn.lock
檔案。
CLI 命令比較
npm (v5) | Yarn |
---|---|
npm install
|
yarn install
|
(不適用) |
yarn install --flat
|
(不適用) |
yarn install --har
|
npm install --no-package-lock
|
yarn install --no-lockfile
|
(不適用) |
yarn install --pure-lockfile
|
npm install [package]
|
yarn add [package]
|
npm install [package] --save-dev
|
yarn add [package] --dev
|
(不適用) |
yarn add [package] --peer
|
npm install [package] --save-optional
|
yarn add [package] --optional
|
npm install [package] --save-exact
|
yarn add [package] --exact
|
(不適用) |
yarn add [package] --tilde
|
npm install [package] --global
|
yarn global add [package]
|
npm update --global
|
yarn global upgrade
|
npm rebuild
|
yarn install --force
|
npm uninstall [package]
|
yarn remove [package]
|
npm cache clean
|
yarn cache clean [package]
|
rm -rf node_modules && npm install
|
yarn upgrade
|