上一篇簡單介紹了NPM包管理工具 在這篇文章中 我想給大家介紹一個取代使用NPM的包管理工具——Yarn 以及它與NPM之間的差異
這個就是Yarn的logo,應(yīng)該是一只貓 Yarn的官網(wǎng):傳送門 來到官網(wǎng),映入眼簾的就是這么幾個大字(大單詞~)
富強(qiáng),民主,文明,和諧…… 那是不可能的~ 這行英語的意思是: 極速、可靠、安全的依賴關(guān)系管理
Yarn是Facebook、Google、Exponent和Tilde開發(fā)的一款新的javaScript包管理工具(開源) Facebook對于Github的貢獻(xiàn)確實(shí)是有目共睹的,僅次于微軟 開發(fā)Yarn意在解決了使用npm時面臨的少數(shù)問題
安裝巨慢無比npm安裝時可以運(yùn)行代碼,不安全……我的電腦是Windows操作系統(tǒng) 按照官網(wǎng)的說明,下載.msi安裝包 下載之前也必須有NodeJS
一步一步next就好了
還有一種方法官網(wǎng)沒說直接通過命令行 我也是通過這種方法下載的 輸入命令:npm intall -g yarn
不過我是卡了好幾遍才下好(網(wǎng)太卡傷不起)
下載完畢后輸入命令 yarn --version
查看版本
使用和npm是類似的 初始化包yarn init
這里我一開始用git bash發(fā)現(xiàn)不好使,會報錯
后來還是老實(shí)的用cmd命令行
其實(shí)npm的命令和yarn大多相通的 只需要把npm換成yarn 不過還是有些不同的 添加包依賴使用命令:yarn add <package>
它相當(dāng)于npm命令:npm install <package> --save
也就是說它會自動將下載包以及版本信息寫入package.json的dependencies
yarn常用的命令以及和npm的對照如下
yarn命令 | 含義 | npm命令 |
---|---|---|
yarn | 根據(jù)package.json安裝依賴 | npm install |
yarn init | 初始化包 | npm init |
yarn add <package> | 安裝依賴并寫入dependencies | npm install <package> --save |
yarn global add <package> | 全局安裝依賴并寫入dependencies | npm install <package> -g --save |
yarn add <package> --dev/-D | 安裝依賴并寫入devDependencies | npm install <package> --save-dev |
yarn upgrade <package> | 升級包版本 | npm update <package> --save |
yarn remove <package> | 卸載包 | npm uninstall <package> --save |
更詳細(xì)的請查看官方文檔
當(dāng)我們下載依賴的時候,會發(fā)現(xiàn)目錄下多了yarn.lock文件 它是很重要的文件,不要刪掉它
轉(zhuǎn)移到其他電腦的時候,要連同package.json和yarn.lock文件一起拷貝 然后輸入命令 yarn
下載模塊
這個yarn.lock有什么好處呢?
使用NPM的時候,如果擁有相同package.json的兩臺電腦子安裝了不同版本的包 就可能會產(chǎn)生一些問題 而Yarn為了避免包版本的錯誤匹配,將確定的安裝版本固定這個鎖文件yarn.lock中 每次添加模塊,Yarn就會更新(首次創(chuàng)建)yarn.lock 文件 這樣我們轉(zhuǎn)移到其他電腦,也可以匹配為相同版本的模塊 避免了版本不同產(chǎn)生的問題 (也就是查看package.json配置文件前,會先查看yarn.lock鎖文件)
實(shí)際上NPM也可以實(shí)現(xiàn)類似的功能 使用 npm shrinkwrap
命令可以生成一個鎖文件 但是使用NPM我們每次都需要手動“上鎖” 而Yarn會自動更新 yarn.lock
想談一談yarn較npm的優(yōu)勢 把優(yōu)勢放在最后將確實(shí)有點(diǎn)奇怪 這也算有使用心得體驗(yàn)的成分
急速 下載速度真的很快,下載任務(wù)是并行下載,而npm是按順序一個一個下緩存 會緩存下載過的包,下載過的包甚至可以離線下載,npm就不能清晰 輸出不像npm一點(diǎn)兒也不冗余,并且進(jìn)度條很形象,誰用誰知道安全 下載前會檢查簽名及包的完整性可靠 各平臺依賴一致性,yarn.lock自動更新優(yōu)化 下載失敗自動重新請求,以及對網(wǎng)絡(luò)資源最大化利用,避免無用請求綜上,Yarn前途無量
==主頁傳送門==
新聞熱點(diǎn)
疑難解答