yarn的安裝及使用詳解
一、引言
之前出過一篇關(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)安裝過一個(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)定的,版本鎖定可以解決包之間版本不兼容問題,npm 也可以通過命令實(shí)現(xiàn)版本鎖定
4、更簡潔的輸出:yarn 安裝包時(shí)輸出的信息較少,npm 輸出信息冗余
三、yarn的安裝
1. nodejs下載安裝:
在node.js 官網(wǎng)里推薦選擇 LTS (長期支持)版本,可在命令行用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)目,安裝的無法保持一致性。原因是因?yàn)?package.json 文件中版本號(hào)的特點(diǎn)導(dǎo)致在安裝的時(shí)候代表不同的含義。
- 使用 npm 安裝多個(gè) js 包時(shí),包會(huì)在同一時(shí)間下載和安裝。安裝過程中,其中一個(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)安裝過一個(gè)軟件包,用Yarn再次安裝時(shí)之間從緩存中獲取,就不用像npm那樣再從網(wǎng)絡(luò)下載了
- 輸出簡潔并且多注冊(cè)來源處理。安裝包時(shí),直觀地打印出必要的信息;不管包被不同的庫間接關(guān)聯(lián)引用多少次,只會(huì)從一個(gè)注冊(cè)來源去裝,防止出現(xiàn)混亂不一致。
npm 與 yarn 常用命令對(duì)比
到此這篇關(guān)于yarn的安裝及使用教程的文章就介紹到這了,更多相關(guān)yarn安裝使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs和C語言插入mysql數(shù)據(jù)庫亂碼問題的解決方法
這篇文章主要介紹了nodejs和C語言插入mysql數(shù)據(jù)庫亂碼問題,需要的朋友可以參考下2017-04-04使用nodejs中httpProxy代理時(shí)候出現(xiàn)404異常的解決方法
下面小編就為大家?guī)硪黄褂胣odejs中httpProxy代理時(shí)候出現(xiàn)404異常的解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08nodeJs實(shí)現(xiàn)基于連接池連接mysql的方法示例
這篇文章主要介紹了nodeJs實(shí)現(xiàn)基于連接池連接mysql的方法,結(jié)合具體實(shí)例形式分析了nodejs連接池操作mysql數(shù)據(jù)庫連接的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2018-02-02node.js 開發(fā)指南 – Node.js 連接 MySQL 并進(jìn)行數(shù)據(jù)庫操作
通常在NodeJS開發(fā)中我們經(jīng)常涉及到操作數(shù)據(jù)庫,尤其是 MySQL ,作為應(yīng)用最為廣泛的開源數(shù)據(jù)庫則成為我們的首選,本篇就來介紹下如何通過NodeJS來操作 MySQL 數(shù)據(jù)庫。2014-07-07node+koa實(shí)現(xiàn)數(shù)據(jù)mock接口的方法
本篇文章主要介紹了node+koa實(shí)現(xiàn)數(shù)據(jù)mock接口的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09node.js中優(yōu)雅的使用Socket.IO模塊的方法
Socket.IO是一個(gè)WebSocket庫,包括了客戶端的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來安裝less及編譯less文件為css文件的方法
這篇文章主要介紹了使用nodeJs來安裝less及編譯less文件為css文件的方法,在文章末尾給大家補(bǔ)充介紹了通過nodejs將less文件轉(zhuǎn)為css文件的方法,具體內(nèi)容詳情大家通過本文學(xué)習(xí)吧2017-11-11