利用yarn代替npm管理前端項目模塊依賴的方法詳解
本文主要給大家介紹了關(guān)于yarn代替npm管理前端項目模塊依賴的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。
什么是 yarn?
簡單來說,yarn 是一個與 npm 功能相同的工具,用于前端項目的依賴管理。在使用 npm 的項目中,使用 npm 命令的地方都可以使用 yran 來代替。
為什么要使用 yarn 替代 npm 呢?yarn 相對 npm 來說,主要的特點有:
- 離線、并行安裝:依賴并行安裝,緩存已下載過的依賴并優(yōu)先使用,各種優(yōu)化使得安裝依賴速度顯著提升
- 確定性:默認(rèn)生成 yarn.lock 文件,可以保證各開發(fā)人員開發(fā)安裝依賴的目錄具有一致性
- more…
好吧,其實 npm 也在不斷的優(yōu)化改進(jìn)中。但 yarn 確實有很多亮點,至少當(dāng)前是非常值得你去使用的。
yarn 使用快速上手
安裝
雖然安裝 yarn 可以不依賴 npm,但這里還是建議你使用 npm 來安裝吧,快速而簡潔:
npm i -g yarn
在項目中使用
首次初始化項目時執(zhí)行,在每次項目啟動/構(gòu)建之前,也都應(yīng)執(zhí)行一次,以保證本地依賴得到及時更新。
該命令會檢查 package.json 和 yarn.lock 文件中的依賴,當(dāng)有其內(nèi)容更新,會進(jìn)行依賴更新安裝。
yarn <install>
依賴更新。當(dāng)你希望更新依賴模塊到其最新版本時執(zhí)行該命令。
yarn upgrade
yarn 常用命令
開始新項目
yarn init
添加依賴包
yarn add [package] yarn add [package]@[version] yarn add [package]@[tag]
升級依賴包
yarn upgrade [package] yarn upgrade [package]@[version] yarn upgrade [package]@[tag]
移除依賴包
yarn remove [package]
安裝項目的全部依賴
yarn
或者
yarn install
yarn 使用實踐建議
我們選擇 yarn 的主要原因是依賴安裝速度快,默認(rèn)生成的 yarn.lock 會保證所有成員的模塊依賴目錄能夠很好的保持一致。
yarn install 和 yarn upgrade 的執(zhí)行邏輯,可以讓你可以很清晰的管理本地依賴的版本更新時機(jī),又能很好的讓所有開發(fā)人員的本地依賴保持一致性。
使用 npm install 則有些亂,當(dāng)你不想寫死版本號依賴時,它總會安裝依賴包最新可用的版本,但這在有時候并不是你想要的。
在 yarn 之前,我們使用的是 npm+淘寶倉庫方案,也會使用 cnpm。在國內(nèi),cnpm 的依賴安裝速度比 yarn 還要快,但 cnpm 在 windows 下通過創(chuàng)建鏈接引用的方式管理包依賴,可能會帶來一些問題。
現(xiàn)在我們會默認(rèn)使用淘寶倉庫,使用 npm 管理全局依賴,使用 yarn 管理具體項目內(nèi)的依賴。
在一個新的項目中使用 yarn,我們會這么來做:
- 寫好 package.json,寫入初始的第三方依賴
- 執(zhí)行 yarn 命令,初始化安裝項目依賴,生成 yarn.lock 文件
- 后續(xù)通過執(zhí)行 yarn add xxx 添加更多需要的依賴(也可直接在 package.json 文件中寫入)
- 當(dāng)確定需要更新依賴模塊到其最新版本時,執(zhí)行 yarn upgrade 命令
- 配置項目啟動命令執(zhí)行前,先執(zhí)行 yarn 命令,以保證當(dāng) yarn.lock 被更新時,本地依賴也及時得到更新。例如,在 package.json 的 script 部分中配置 start 命令: "start": "yarn && yarn run build:dev"
你是如何來使用 yarn 的呢?歡迎分享你的經(jīng)驗。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)參考
相關(guān)文章
Kubernetes Node刪除鏡像的實現(xiàn)步驟
本文介紹了在Kubernetes集群中如何刪除節(jié)點上的鏡像,包括連接節(jié)點、查看鏡像列表、使用Docker命令刪除鏡像以及驗證刪除結(jié)果的步驟,感興趣的可以了解一下2024-09-09
npm?list輸出結(jié)果包含extraneous標(biāo)志記錄分析
這篇文章主要為大家介紹了npm?list輸出結(jié)果包含extraneous標(biāo)志記錄分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
node.js學(xué)習(xí)之?dāng)嘌詀ssert的使用示例
assert 模塊主要用于編寫程序的單元測試時使用,通過斷言可以提早發(fā)現(xiàn)和排查出錯誤。下面這篇文章主要給大家介紹了關(guān)于node.js學(xué)習(xí)之?dāng)嘌詀ssert的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
Windows下快速搭建NodeJS本地服務(wù)器的步驟
本篇文章主要介紹了Windows下快速搭建NodeJS本地服務(wù)器的步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-08-08

