yarn的安裝及使用詳解
一、引言
之前出過(guò)一篇關(guān)于 用 npm 創(chuàng)建 react 項(xiàng)目的介紹與使用教程,本文在此介紹并對(duì)比一下 yarn 的使用。
yarn 是由 Facebook、Google、Exponent 和 Tilde 聯(lián)合推出了一個(gè)新的 JS 包管理工具,yarn 是為了彌補(bǔ) npm 的一些缺陷而出現(xiàn)的。
二、同為包管理工具 npm和yarn的區(qū)別
1、并行安裝:yarn安裝包會(huì)同時(shí)執(zhí)行多個(gè)任務(wù),npm 需等待上一個(gè)任務(wù)安裝完成才能運(yùn)行下一個(gè)任務(wù)
2、離線模式:如果你已經(jīng)安裝過(guò)一個(gè)包,用 yarn 再次安裝會(huì)從緩存中獲取,而 npm 會(huì)從網(wǎng)絡(luò)下載
3、版本鎖定:yarn 默認(rèn)有一個(gè) yarn.lock 文件鎖定版本,保證環(huán)境統(tǒng)一,而 npm 默認(rèn)從網(wǎng)絡(luò)下載最新的最穩(wěn)定的,版本鎖定可以解決包之間版本不兼容問(wèn)題,npm 也可以通過(guò)命令實(shí)現(xiàn)版本鎖定
4、更簡(jiǎn)潔的輸出:yarn 安裝包時(shí)輸出的信息較少,npm 輸出信息冗余
三、yarn的安裝
1. nodejs下載安裝:
在node.js 官網(wǎng)里推薦選擇 LTS (長(zhǎng)期支持)版本,可在命令行用node -v 查看node的安裝版本。順便npm -v
查看npm的版本號(hào)。
2. yarn的安裝并查看版本:
npm install -g yarn yarn --version
四、總結(jié)
npm存在的一些不足:
npm install
下載速度慢,即使是重新 install 時(shí)速度依舊慢- 同一個(gè)項(xiàng)目,安裝的無(wú)法保持一致性。原因是因?yàn)?package.json 文件中版本號(hào)的特點(diǎn)導(dǎo)致在安裝的時(shí)候代表不同的含義。
- 使用 npm 安裝多個(gè) js 包時(shí),包會(huì)在同一時(shí)間下載和安裝。安裝過(guò)程中,其中一個(gè)包拋出了一個(gè)異常,但 npm 會(huì)繼續(xù)安裝其他包,所以錯(cuò)誤信息就會(huì)在一大堆提示信息中丟失掉,以至于直到執(zhí)行前,都不會(huì)發(fā)現(xiàn)實(shí)際發(fā)生的錯(cuò)誤。
Yarn的優(yōu)點(diǎn):
- 安裝速度快 (服務(wù)器速度快 , 并且是并行下載)
- 版本鎖定,安裝版本統(tǒng)一
- 緩存機(jī)制,如果之前已經(jīng)安裝過(guò)一個(gè)軟件包,用Yarn再次安裝時(shí)之間從緩存中獲取,就不用像npm那樣再?gòu)木W(wǎng)絡(luò)下載了
- 輸出簡(jiǎn)潔并且多注冊(cè)來(lái)源處理。安裝包時(shí),直觀地打印出必要的信息;不管包被不同的庫(kù)間接關(guān)聯(lián)引用多少次,只會(huì)從一個(gè)注冊(cè)來(lái)源去裝,防止出現(xiàn)混亂不一致。
npm 與 yarn 常用命令對(duì)比
到此這篇關(guān)于yarn的安裝及使用教程的文章就介紹到這了,更多相關(guān)yarn安裝使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs和C語(yǔ)言插入mysql數(shù)據(jù)庫(kù)亂碼問(wèn)題的解決方法
這篇文章主要介紹了nodejs和C語(yǔ)言插入mysql數(shù)據(jù)庫(kù)亂碼問(wèn)題,需要的朋友可以參考下2017-04-04使用nodejs中httpProxy代理時(shí)候出現(xiàn)404異常的解決方法
下面小編就為大家?guī)?lái)一篇使用nodejs中httpProxy代理時(shí)候出現(xiàn)404異常的解決方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08socket.io斷線重連的幾種場(chǎng)景及處理方法
Socket.IO是一個(gè)庫(kù),可用于在瀏覽器和服務(wù)器之間進(jìn)行實(shí)時(shí),雙向和基于事件的通信,下面這篇文章主要給大家介紹了關(guān)于socket.io斷線重連的幾種場(chǎng)景及處理方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03nodeJs實(shí)現(xiàn)基于連接池連接mysql的方法示例
這篇文章主要介紹了nodeJs實(shí)現(xiàn)基于連接池連接mysql的方法,結(jié)合具體實(shí)例形式分析了nodejs連接池操作mysql數(shù)據(jù)庫(kù)連接的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2018-02-02node.js 開(kāi)發(fā)指南 – Node.js 連接 MySQL 并進(jìn)行數(shù)據(jù)庫(kù)操作
通常在NodeJS開(kāi)發(fā)中我們經(jīng)常涉及到操作數(shù)據(jù)庫(kù),尤其是 MySQL ,作為應(yīng)用最為廣泛的開(kāi)源數(shù)據(jù)庫(kù)則成為我們的首選,本篇就來(lái)介紹下如何通過(guò)NodeJS來(lái)操作 MySQL 數(shù)據(jù)庫(kù)。2014-07-07node+koa實(shí)現(xiàn)數(shù)據(jù)mock接口的方法
本篇文章主要介紹了node+koa實(shí)現(xiàn)數(shù)據(jù)mock接口的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09node.js中優(yōu)雅的使用Socket.IO模塊的方法
Socket.IO是一個(gè)WebSocket庫(kù),包括了客戶(hù)端的js和服務(wù)器端的node.js,它的目標(biāo)是構(gòu)建可以在不同瀏覽器和移動(dòng)設(shè)備上使用的實(shí)時(shí)應(yīng)用,這篇文章主要介紹了node.js中優(yōu)雅的使用Socket.IO模塊,需要的朋友可以參考下2022-12-12使用nodeJs來(lái)安裝less及編譯less文件為css文件的方法
這篇文章主要介紹了使用nodeJs來(lái)安裝less及編譯less文件為css文件的方法,在文章末尾給大家補(bǔ)充介紹了通過(guò)nodejs將less文件轉(zhuǎn)為css文件的方法,具體內(nèi)容詳情大家通過(guò)本文學(xué)習(xí)吧2017-11-11