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