亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

Yarn 和 npm 評測對比

前言:同學們大家好,在之前的課程中,給大家簡單介紹了yarn的基本概念和命令使用方法。我們說,yarn是一個非常具有競爭力的依賴管理工具。甚至最近幾年,它的熱度一度超過傳統工具npm。它簡潔的日志輸出方式,依賴管理方案,以及下載速度,都給開發者帶來了非常棒的體驗。下面我給大家用實際開發場景測試一下,具體說明yarn的優勢。

1. 待測試命令

npm命令 yarn命令
npm install yarn
npm install [email protected] -g yarn global add [email protected]
npm install [email protected] --save yarn add [email protected]
npm install [email protected] --save-dev yarn add [email protected] --dev
npm uninstall xxx --save(-dev) yarn remove xxx
npm run xxx yarn run xxxx

通過以上待測試命令,我們可以看到:

  1. 相同功能的命令,yarn的命令更加簡潔,且更加語義化。
  2. yarn的全局安裝使用 global 命令,但是yarn本身并不希望我們全局安裝某些包,更希望我們每一個項目單獨去管理依賴及版本。全局安裝某些包后,如果需要刪除模塊,用 yarn global remove 就好,如果需要清除緩存,用 yarn cache clean 。
  3. 如npm run 等很多命令,我們可以直接替換成yarn run,降低了學習記憶成本。

2. 命令運行效果

為了方便大家看到測試運行效果,我們簡單做了前期準備,使用vue cli初始化了一個項目,在相同的環境相同的網速情況下安裝一些依賴。
先介紹一下我們項目 package.json 里的配置項
運行效果

首先,我們使用npm來安裝這些依賴:
運行效果
運行效果

然后,我們刪除 node_modules 文件夾中已經安裝好的依賴,使用yarn重新安裝一遍。
運行效果
運行效果
總結:通過以上測試,我們可以明顯的看出,同樣的安裝依賴,使用yarn 安裝的log輸出,頁面簡潔內容詳細,而npm相比之下就遜色了很多。并且最重要的,yarn的速度優勢體現的淋漓精致,比npm的速度快了幾倍。這只是在依賴很少的項目中就可以看出速度對比,在我們日常開發的大型前端項目框架中,yarn的速度優勢會更加明顯。

3. npm 和 yarn混合使用

在平時的開發中,尤其是一些相對較老的項目,我們是通常是使用npm來初始化項目的。那現在我們想使用yarn,是不是就要重新搭建環境,或者改動很多配置呢?答案是no,我們不需要做什么改動,因為它們都遵循著同一個配置文件 package.json 的規范,我們可以直接在npm的基礎上使用yarn,也能完美運行,下面,用實際項目證明我們的觀點。

同樣還是使用上文中的配置項。
運行效果

然后我們使用npm來初始化項目,安裝基礎依賴。
運行效果

安裝完成后我們的項目就多了一個 node_modules 文件夾,里面就是我們用npm安裝的所有依賴。

接下來,我們使用 yarn ,在npm安裝的依賴基礎上再追加一個新的依賴包 elementUI
運行效果
運行效果
安裝成功!說明安裝是沒問題的,然后我們再嘗試使用 yarn 卸載 npm 安裝的依賴。
運行效果

刪除成功,說明 yarn 可以完美適配 npm 的項目,我們可以將原有的npm項目平滑的過度到yarn項目,非常的方便。

4. 相比npm,yarn在安裝過程中的優勢

  • 離線模式:yarn會有一個緩存目錄,會緩存以前安裝過的軟件包,再次安裝時就不必從網絡下載了,大大加速安裝速度。
  • 性能優化:下載軟件時會自動優化請求順序,使安裝效率更高。
  • 網絡回彈:yarn在某個安裝包請求失敗時不會導致安裝失敗,它會自動去嘗試重新安裝。而npm則會毫不猶豫的失敗,導致得再來一次,耗費時間

5.小結

通過以上測評,相信大家已經感受到了yarn的優勢,希望在日常開發中,大家有機會可以多嘗試多總結,提高我們的開發效率和體驗。