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 |
通過以上待測試命令,我們可以看到:
- 相同功能的命令,yarn的命令更加簡潔,且更加語義化。
- yarn的全局安裝使用
global
命令,但是yarn本身并不希望我們全局安裝某些包,更希望我們每一個項目單獨去管理依賴及版本。全局安裝某些包后,如果需要刪除模塊,用yarn global remove
就好,如果需要清除緩存,用yarn cache clean
。 - 如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的優勢,希望在日常開發中,大家有機會可以多嘗試多總結,提高我們的開發效率和體驗。