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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Node.js包管理器Yarn的入门介绍与安装

發(fā)布時間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Node.js包管理器Yarn的入门介绍与安装 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT.

就在前不久,?Facebook?發(fā)布了新的?node.js?包管理器?Yarn?用以替代?npm?。咱雖然是個半桶水的咸魚前端,不過也得跟上?Javascript?這股潮?(hong)?流?(huang)?的腳步,所以便有了下面這篇文章。大概的淺嘗了一下這個自稱是又快又可信賴又安全的包管理,所以寫的內(nèi)容不會很詳細(xì),更多的可能只是針對這個全新的包管理與?npm?的不同之處來對比。也可能有些地方寫得不對,如果有的話,歡(lai)迎(da)指(wo)正(a)。

Installation

首先當(dāng)然是安裝啦。跟?npm?這種被欽點(diǎn)而隨?nodejs?一起被安裝的包管理器不同,Yarn?需要自行手動安裝。這也可以理解吧,畢竟是全新的東西。不過老實(shí)說,安裝體驗(yàn)是不太好的……吧。

為什么怎么說呢……因?yàn)槲业拈_發(fā)環(huán)境是?Arch Linux?,而官方文檔只提供了?apt-get?系?Linux?和?yum?系?Linux?的安裝方式……

既然志在取代?npm?,那么肯定有全平臺的兼容方案咯,果然有適用于所有發(fā)行版的手動安裝腳本,于是我就嘗試這個,可是裝了三次沒有一次成功,各種問題……

最后發(fā)現(xiàn),其實(shí)?yarn?可以直接像裝模塊那樣用?npm?裝:

<span style="color:#a31515">npm install -g yarn</span>

啊嘞?一個要取代?npm?的東西,居然還要用?npm?來裝??excuse me??好吧,不管怎么講總之是這樣裝上了,所以我說安裝體驗(yàn)一般般……也許可能對其他的發(fā)行版來說會好一些吧,可能對于一些大眾的發(fā)行版和?macOS?來說,安裝就是一條命令打進(jìn)終端的事情。

雖然截止到我寫這篇文章的時候,已經(jīng)有了?Arch Linux?上的安裝方式,不過是通過yaourt(AUR)?的方式,不過我并不覺得對于新手來說手動裝一下?yaourt?再裝?yarn?比直接裝?nodejs?然后?npm install?簡單。也許在現(xiàn)階段,相比什么?Debian/Ubuntu/CentOS?來說?Arch?還是個小眾的發(fā)行版吧……

Dependencies Management

安裝部分就這樣告一段落。既然作為一個包管理,就要做好自己的職責(zé)。接下來就想要試試這個新包管理是否真的有它所宣傳的那樣神奇。接下來我在同樣的環(huán)境下,將?yarn?和?npm?以及?cnpm?做對比。由于墻內(nèi)的特殊環(huán)境,已將?npm?的?registry?更換為?https://registry.npm.taobao.org?。

FASTER

在對比之前,我覺得這個對比對?yarn?來說有些不公平,因?yàn)?npm?已經(jīng)設(shè)置了國內(nèi)的鏡像,而截止此文章發(fā)布的時候?yarn?并沒有國內(nèi)鏡像,所以并沒有對?yarn?進(jìn)行特殊的設(shè)置。我有些擔(dān)心這樣會不會對測試的結(jié)果造成誤差。

Yarn?既然是?Facebook?家的東西,那我們就首先試一下安裝他家的?React?好了:

首先當(dāng)然是主角?yarn?啦。需要注意的是?yarn?安裝依賴的方式不同于?npm?,你需要執(zhí)行以下命令來安裝依賴:

yarn add reactadd react <span style="color:green"># same as npm install react</span>

可以看到?yarn?安裝?React?用了?13.3s?,這速度也著實(shí)令人滿意。

接下來是?npm?。因?yàn)?npm?并不顯示命令時間,所以我掐了一下秒表,大概?45s?的樣子,是?yarn?的好幾倍多。好像比起?npm?來說,?yarn?的速度確實(shí)快了一些呢,而且?npm?用的還是國內(nèi)的源。

不過?cnpm?的速度就更快了,只用了?4s?便完成了整個安裝過程。但是畢竟?cnpm是?npm?的衍生產(chǎn)物,處于情理之中。既然這東西可以改善?npm?的速度,誰知道以后會不會有?cyarn?呢?但是通過這個測試我們可以看出,?yarn?的速度相比原生?npm?著實(shí)是一個質(zhì)的飛躍,FASTER 并不是浪得虛名。

接下來我又嘗試了安裝其他的包,多次對比了一下,?平均下來 yarn 會比 npm 快上 3–6 倍(這是安裝體積小一些的包的情況)。

RELIABLE/SECURE

至于這個包管理是否?reliable/secure?,這個我暫時沒想到怎么測試。我只知道在我用的時候,偶爾有幾率會報一些莫名其妙的錯誤,但是反復(fù)執(zhí)行兩遍命令,就又正常工作了。畢竟?yarn?是新出的東西嘛,可以理解。不過就在這一天之內(nèi),yarn 的 GitHub 項(xiàng)目主頁已經(jīng)贏得了 9K star,issues 和 pull request 也有了上千個,可見其火熱的程度,所以對于它的前景,我還是很看好的。

Offline mode

Yarn?的一個亮點(diǎn)就是可以離線安裝依賴,當(dāng)然,前提是曾經(jīng)安裝過這個依賴。?Yarn會緩存安裝過的包,下次安裝的時候如果指定了?-offline?參數(shù),?Yarn?就會直接從緩存中取出這個包,這樣將大大縮短安裝依賴的時間。

遺憾的是,盡管官方文檔我看了一遍又一遍,這個功能還是無法正常在我的環(huán)境上工作。我會找一下原因,這一段稍后補(bǔ)充。

但是這個?feature?真的是讓人眼前一亮,可以說解決了?npm?的一個短板,很致命的短板。有了這樣的功能之后,以后在沒有網(wǎng)絡(luò)的環(huán)境下也能夠安裝已有的依賴的。而且省去了下載的時間,大大提高了效率。想象一下以后執(zhí)行?react-native init?的時候不用漫長等待 15 分鐘了,是不是很開心(當(dāng)然,什么時候?Facebook?把?react-native init?的安裝依賴過程換成自家的包管理安裝還是未知數(shù)喔)。

yarn.lock 文件

Yarn?通過一個?yarn.lock?文件,來使得你的程序得以在不同的機(jī)器上獲得一致的體驗(yàn)。雖然這個解釋很牽強(qiáng),好歹我沒有機(jī)翻給大家看,已經(jīng)很良心了(霧)。感覺這好像是個很高端的東西,其實(shí)主要是對?package.json?的一個補(bǔ)充。

有興趣的話,可以看這里的詳細(xì)介紹(需要英文好一些喲):

Yarn

Fast, reliable, and secure dependency management.?yarnpkg.com

Summary

忽如一夜春風(fēng)來,千樹萬樹梨花開。有時候就是眼睛一睜一閉之間,一個新的東西就這樣在你全然不知的時候悄然面世了。今天出了 yarn,明天指不定又會出現(xiàn)什么。慶幸的是,我們還能趕上這個新玩意的早班車。

記得近幾日的一篇高端黑文(大霧),描述了在 2016 年學(xué)習(xí) Javascript 這門語言的感受(看這里:?How it feels to learn Javascript in 2016?),確實(shí),這門語言單單一年的發(fā)展,就足以嗆死不少人。

但是必須要說?yarn?的出現(xiàn)確實(shí)是有進(jìn)步意義的,他解決了?npm?已知的一些問題,拓展出了新的特性。既然如此,它就是值得去接觸和學(xué)習(xí)的。盡管距離取代?npm?還有好長的一段時間,走好長的一段路,但是可以預(yù)見它的前途將是一片的光明。

總結(jié)

以上是生活随笔為你收集整理的Node.js包管理器Yarn的入门介绍与安装的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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