日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

yarn、npm、cnpm三者区别

發(fā)布時間:2023/12/31 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 yarn、npm、cnpm三者区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

放一張實驗室的合照壓壓驚,有點想實驗室的兄弟們了~~~

一、原理分析

npm
(1)npm 是Node.js 能夠如此成功的主要原因之一。npm 團隊做了很多的工作,以確保 npm 保持向后兼容,并在不同的環(huán)境中保持一致。
(2)npm是圍繞著 語義版本控制(semver)的思想而設計。

  • 給定一個版本號:主版本號.次版本號.補丁版本號, 以下這三種情況需要增加相應的版本號:

  • 主版本號: 當API發(fā)生改變,并與之前的版本不兼容的時候

  • 次版本號: 當增加了功能,但是向后兼容的時候

  • 補丁版本號:當做了向后兼容的缺陷修復的時候

npm 2
安裝每一個包所依賴的所有依賴項。如果我們有這么一個項目,它依賴項目A,項目A依賴項目B,項目B依賴項目C,那么依賴樹將如下所示:

node_modules - package-A -- node_modules --- package-B ----- node_modules ------ package-C -------- some-really-really-really-long-file-name-in-package-c.js

缺點:

這個結(jié)構(gòu)可能會很長。這對于基于Unix的操作系統(tǒng)來說只不過是一個小煩惱,但對于Windows來說卻是個破壞性的東西,因為有很多程序無法處理超過260個字符的文件路徑名


npm 3
采用了扁平依賴關系樹來解決這個問題,所以我們的3個項目結(jié)構(gòu)現(xiàn)在看起來如下所示:

node_modules - package-A - package-B - package-C -- some-file-name-in-package-c.js

優(yōu)點:

存了已經(jīng)下載的每個版本的壓縮包。本地緩存的內(nèi)容可以通過npm cache ls命令進行查看。本地緩存的設計有助于減少安裝時間。

缺點:

(1)npm必須首先遍歷所有的項目依賴關系,然后再決定如何生成扁平的node_modules目錄結(jié)構(gòu)。npm必須為所有使用到的模塊構(gòu)建一個完整的依賴關系樹,這是一個耗時的操作,是npm安裝速度慢的一個很重要的原因
(2)想當然的以為每次運行npm install命令時,NPM都得從互聯(lián)網(wǎng)上下載所有內(nèi)容
(npm是有本地緩存的,它保存了已經(jīng)下載的每個版本的壓縮包。本地緩存的內(nèi)容可以通過npm cache ls命令進行查看。本地緩存的設計有助于減少安裝時間。)

cnpm
(1) cnpm跟npm用法完全一致,只是在執(zhí)行命令時將npm改為cnpm。
(2) npm安裝插件是從國外服務器下載,受網(wǎng)絡影響大,可能出現(xiàn)異常,如果npm的服務器在中國就好了,于是淘寶團隊干了這事。來自官網(wǎng):“這是一個完整 npmjs.org鏡像,你可以用此代替官方版本(只讀),同步頻率目前為 10分鐘 一次以保證盡量與官方服務同步。

配置:

npm install -g cnpm --registry=https://registry.npm.taobao.org

Yarn
(1) Yarn一開始的主要目標是解決上一節(jié)中描述的由于語義版本控制而導致的npm安裝的不確定性問題。雖然可以使用npm shrinkwrap來實現(xiàn)可預測的依賴關系樹,但它并不是默認選項,而是取決于所有的開發(fā)人員知道并且啟用這個選項.
(2) yarn.lock文件,而且它是默認創(chuàng)建的。除了常規(guī)信息之外,yarn.lock文件還包含要安裝的內(nèi)容的校驗和,以確保使用的庫的版本相同。
(3)像npm一樣,yarn使用本地緩存。與npm不同的是,yarn無需互聯(lián)網(wǎng)連接就能安裝本地緩存的依賴項,它提供了離線模式。
(4)運行速度得到了顯著的提升,整個安裝時間也變得更少.


二、yarn 和 npm 對比


三、yarn 的優(yōu)點

速度快 。
速度快主要來自以下兩個方面:
(1)并行安裝:無論 npm 還是Yarn在執(zhí)行包的安裝時,都會執(zhí)行一系列任務。npm是按照隊列執(zhí)行每個package,也就是說必須要等到當前package安裝完成之后,才能繼續(xù)后面的安裝。而 Yarn 是并行執(zhí)行所有任務,提高了性能。

(2)離線模式:如果之前已經(jīng)安裝過一個軟件包,用Yarn再次安裝時之間從緩存中獲取,就不用像npm那樣再從網(wǎng)絡下載了。

總結(jié)

以上是生活随笔為你收集整理的yarn、npm、cnpm三者区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。