2021-05-12 14:32:11
從 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 |
相關文章