前言
這兩天大家有沒有都被Yarn悄悄刷了屏,最近Facebook 發布了新的 node.js 包管理器 Yarn 用以替代 npm 。為了跟上 Javascript 這股潮 流的腳步,大概的淺嘗了一下這個自稱是又快又可信賴又安全的包管理,所以寫的內容不會很詳細,更多的可能只是針對這個全新的包管理與 npm 的不同之處來對比。也可能有些地方寫得不對,如果有的話,歡迎指正。
一、安裝
首先當然是安裝啦。跟 npm 這種被欽點而隨 nodejs 一起被安裝的包管理器不同, Yarn 需要自行手動安裝。這也可以理解吧,畢竟是全新的東西。不過老實說,安裝體驗是不太好的……吧。
為什么怎么說呢……因為我的開發環境是 Arch Linux ,而官方文檔只提供了 apt-get 系 Linux 和 yum 系 Linux 的安裝方式……
既然志在取代 npm ,那么肯定有全平臺的兼容方案咯,果然有適用于所有發行版的手動安裝腳本,于是我就嘗試這個,可是裝了三次沒有一次成功,各種問題……
最后發現,其實 yarn 可以直接像裝模塊那樣用 npm 裝:
npm install -g yarn
一個要取代 npm 的東西,居然還要用 npm 來裝? 好吧,不管怎么講總之是這樣裝上了,所以我說安裝體驗一般般……也許可能對其他的發行版來說會好一些吧,可能對于一些大眾的發行版和 macOS 來說,安裝就是一條命令打進終端的事情。
雖然截止到我寫這篇文章的時候,已經有了 Arch Linux 上的安裝方式,不過是通過 yaourt(AUR) 的方式,不過我并不覺得對于新手來說手動裝一下 yaourt 再裝 yarn 比直接裝 nodejs 然后 npm install 簡單。也許在現階段,相比什么 Debian/Ubuntu/CentOS 來說 Arch 還是個小眾的發行版吧……
二、Dependencies Management
安裝部分就這樣告一段落。既然作為一個包管理,就要做好自己的職責。接下來就想要試試這個新包管理是否真的有它所宣傳的那樣神奇。接下來我在同樣的環境下,將 yarn 和 npm 以及 cnpm 做對比。由于墻內的特殊環境,已將 npm 的 registry 更換為 https://registry.npm.taobao.org 。
FASTER
在對比之前,我覺得這個對比對 yarn 來說有些不公平,因為 npm 已經設置了國內的鏡像,而截止此文章發布的時候 yarn 并沒有國內鏡像,所以并沒有對 yarn 進行特殊的設置。我有些擔心這樣會不會對測試的結果造成誤差。
Yarn 既然是 Facebook 家的東西,那我們就首先試一下安裝他家的 React 好了:

首先當然是主角 yarn 啦。需要注意的是 yarn 安裝依賴的方式不同于 npm ,你需要執行以下命令來安裝依賴:
yarn add react
# same as npm install react
可以看到 yarn 安裝 React 用了 13.3s ,這速度也著實令人滿意。

接下來是 npm 。因為 npm 并不顯示命令時間,所以我掐了一下秒表,大概 45s 的樣子,是 yarn 的好幾倍多。好像比起 npm 來說, yarn 的速度確實快了一些呢,而且 npm 用的還是國內的源。
不過 cnpm 的速度就更快了,只用了 4s 便完成了整個安裝過程。但是畢竟 cnpm 是 npm 的衍生產物,處于情理之中。既然這東西可以改善 npm 的速度,誰知道以后會不會有 cyarn 呢?但是通過這個測試我們可以看出, yarn 的速度相比原生 npm 著實是一個質的飛躍,FASTER 并不是浪得虛名。
接下來我又嘗試了安裝其他的包,多次對比了一下, 平均下來 yarn 會比 npm 快上 3 主站蜘蛛池模板: 乐昌市| 托里县| 孝感市| 宁海县| 赣榆县| 义马市| 象山县| 大城县| 定边县| 伊宁县| 涞源县| 买车| 巨鹿县| 临洮县| 石泉县| 德昌县| 小金县| 建阳市| 麦盖提县| 宁陕县| 义乌市| 毕节市| 丰镇市| 津市市| 保亭| 沙河市| 额济纳旗| 东城区| 临汾市| 饶河县| 景德镇市| 县级市| 武汉市| 佛教| 大连市| 日土县| 尼勒克县| 平阳县| 石家庄市| 黑龙江省| 南漳县|