首頁 > 軟體

從 npm 遷移

2020-06-16 16:37:23

對多數使用者來說,從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

IT145.com E-mail:sddin#qq.com