yarn的學習-2-從 npm 遷移到 yarn-包管理工具


從npm處遷移過來多許多用戶來說是一個相對簡單的過程。yarn能想npm一樣定制相同的package.json,並能夠從npm倉庫下載任意的包

如果你想要在已存在的npm項目中使用yarn,運行yarn即可,其默認運行的是yarn install:

yarn

這將使用Yarn的與npm的分辨率算法兼容( node.js module resolution algorithm.)的分辨率算法去部署node_modules文件夾。

如果出現錯誤,請查看已存在的問題或將其報告給 Yarn issue tracker

當你運行yarn yarn add <package>時,將會在包的根目錄下生成yarn.lock文檔。你不需要去讀或者理解這個文檔,只要在源碼控制中進行檢查即可。當其他人使用yarn來替代npm時,yarn.lock文檔將保證他們精確地得到與你相同的依賴

在大多數例子中,第一次運行yarn or yarn add就能成功。但是在一些例子中,package.json中的信息不夠明確去排除依賴,且會與yarn選擇依賴的明確方式產生沖突。這種情況經常發生在一些大項目中,npm install經常失敗,導致開發人員要經常地移除node_modules文件夾去從頭開始構建。如果這個情況發生,盡量在轉換成yarn之前使用npm去使依賴的版本更加明確

在yarn的1.7.0版本之后,能夠使用yarn去import npm生成給yarn的package-lock.json來解決上面的問題

這個項目的其他開發人員還是能夠繼續使用npm,不需要讓這個項目的每個人都同時轉換。使用yarn的開發人員都會得到與他人相同的配置,使用npm的可能會有稍微的不同,這是npm有意導致的。

之后,如果你認為yarn不適合你,你仍能夠回去使用npm,並不需要做任何的變化。如果這個項目沒有人需要使用yarn,那么你就可以刪除你的yarn.lock文檔,但是這不是必須要做的。

如果你正使用npm-shrinkwrap.json文檔,要注意你可能會導致一系列不同的依賴。yarn不支持npm-shrinkwrap.json,因為它沒有足夠的信息去支持yarn更多的確定性算法。如果你正在使用npm-shrinkwrap.json,那么將這個項目的所有人同時轉成使用yarn將更加容易。只要將npm-shrinkwrap.json刪除並檢查新創建的yarn.lock即可。

 

CLI commands comparison 兩者的cli對比:

npm (v5) Yarn
npm install yarn install
(N/A) yarn install --flat
(N/A) yarn install --har
npm install --no-package-lock yarn install --no-lockfile
(N/A) yarn install --pure-lockfile
npm install [package] yarn add [package]
npm install [package] --save-dev yarn add [package] --dev
(N/A) yarn add [package] --peer
npm install [package] --save-optional yarn add [package] --optional
npm install [package] --save-exact yarn add [package] --exact
(N/A) yarn add [package] --tilde
npm install [package] --global yarn global add [package]
npm update --global                   yarn global upgrade                    
npm rebuild yarn add --force
npm uninstall [package] yarn remove [package]
npm cache clean yarn cache clean [package]
rm -rf node_modules && npm install   yarn upgrade                          
npm version major                     yarn version --major                  
npm version minor                     yarn version --minor                  
npm version patch                     yarn version --patch                  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM