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