初始yarn伐蒂、yarn和Npm的區(qū)別

yarn英文官網(wǎng)

yarn是軟件包管理器褪子,允許世界上所有開發(fā)人員一起使用和共享代碼,同時也是一個項目管理工具轻抱。使用yarn可以使項目安全飞涂、穩(wěn)定,且可更容易復(fù)用祈搜。

yarn可以適用于小型項目或大型單體倉庫较店。

yarn具有很多其他開發(fā)者共享的插件,我們在使用yarn時可以使用其他開發(fā)者的共享出來的插件來解決開發(fā)中遇到的問題夭问,如果使用過程中遇到問題泽西,我們可以在對應(yīng)網(wǎng)站上使用issue進行報告問題或反饋,當(dāng)問題修復(fù)后缰趋, 我們可以使用 Yarn 來更新這個解決方案捧杉,讓它更新為被修復(fù)后的最新狀態(tài)。

代碼通過稱為package(包)的東西共享秘血。一個package包含所有共享的代碼以及一個描述該package的package.json文件(稱為manifest(清單))味抖。

安裝

一、全局安裝

在整個系統(tǒng)中使用單個包管理器一直是一個問題灰粮。為了穩(wěn)定仔涩,安裝需要跨環(huán)境使用相同的包管理器版本,否則就會有在在版本之間引入意外破壞性更改的風(fēng)險 - 畢竟粘舟,這就是為什么首先引入鎖文件的概念熔脂!由于 Yarn 在某種意義上是您的第一個項目依賴項,因此“鎖定”它也應(yīng)該是有意義的柑肴。?

因此霞揉,Yarn 2 及更高版本旨在按項目進行管理。別擔(dān)心晰骑,變化不大适秩!只需確保首先安裝我們將用于生成本地的全局 Yarn 二進制文件:?

npm install -g yarn

使用 yarn --vesion查看yarn是否安裝成功,及其對于版本號。?

類似1.22的信息秽荞,

全局安裝的 Yarn 是屬于 “經(jīng)典版本” 序列(即 1.x)骤公,這正是yarn開發(fā)者所期待的,這個系統(tǒng)的一個額外好處是扬跋,為 Yarn 1 配置的項目將繼續(xù)使用它阶捆,而不是突然必須遷移到 2.x 配置格式。如果Yarn從一開始就被“鎖定”了钦听,我們就不需要這么做了趁猴。

二、項目安裝

全局安裝 Yarn 的最新版本:

npminstall-gyarn

進入你的項目文件夾:

cd~/path/to/project

運行以下命令:

yarnsetversion berry

"Berry" 是 Yarn 2 發(fā)布序列的代號彪见,同時也是我們的 代碼倉庫 的名稱!

提交新增和修改過的文件娱挨。參見 哪些文件需要被添加到 .gitignore 配置文件中余指?

大型項目的構(gòu)建,最終目的需要持續(xù)高質(zhì)量的生產(chǎn)在各種終端平臺上可交付部署的代碼跷坝。

三酵镜、更新到最新版本

如果您以后想將 Yarn 更新到最新版本,只需運行:

yarnsetversion latest

然后 Yarn 將從我們的網(wǎng)站下載最新的二進制文件柴钻,并將其安裝到您的項目中淮韭。不要忘記運行新安裝來更新依賴項,更新結(jié)果贴届!

四靠粪、安裝 master 分支的最新構(gòu)建版本

隨著時間的推移,即使最新版本也不夠新了毫蚓,那么你可能希望嘗試最新的 master 代碼分支占键,以檢查 Bug 是否已修復(fù)。這在 Yarn 2 中已經(jīng)變得非常簡單了元潘!只需運行以下命令即可:

yarnsetversion from sources

同樣的畔乙,還可以使用 --branch 參數(shù)來指定要安裝特定的 PR:

yarnsetversion from sources--branch1211

yarn和npm的區(qū)別

npm缺陷

npm install速度巨慢

同一個項目翩概,安裝的時候無法保持一致性牲距。由于package.json文件中版本號的特點,下面三個版本號在安裝的時候代表不同的含義钥庇。

"5.0.3", ? //“5.0.3”表示安裝指定的5.0.3版本

"~5.0.3",? // “~5.0.3”表示安裝5.0.X中最新的版本

"^5.0.3"http://“^5.0.3”表示安裝5.X.X中最新的版本

這就麻煩了牍鞠,常常會出現(xiàn)同一個項目,有的同事是OK的上沐,有的同事會由于安裝的版本不一致出現(xiàn)bug皮服。

安裝的時候,包會在同一時間下載和安裝,中途某個時候龄广,一個包拋出了一個錯誤硫眯,但是npm會繼續(xù)下載和安裝包。因為npm會把所有的日志輸出到終端择同,有關(guān)錯誤包的錯誤信息就會在一大堆npm打印的警告中丟失掉两入,并且你甚至永遠不會注意到實際發(fā)生的錯誤

Yarn的優(yōu)勢

速度快 敲才。速度快主要來自以下兩個方面:

并行安裝:無論 npm 還是 Yarn 在執(zhí)行包的安裝時裹纳,都會執(zhí)行一系列任務(wù)。npm 是按照隊列執(zhí)行每個 package紧武,也就是說必須要等到當(dāng)前 package 安裝完成之后剃氧,才能繼續(xù)后面的安裝。而 Yarn 是同步執(zhí)行所有任務(wù)阻星,提高了性能朋鞍。

離線模式:如果之前已經(jīng)安裝過一個軟件包,用Yarn再次安裝時之間從緩存中獲取妥箕,就不用像npm那樣再從網(wǎng)絡(luò)下載了滥酥。

安裝版本統(tǒng)一:為了防止拉取到不同的版本,Yarn 有一個鎖定文件 (lock file) 記錄了被確切安裝上的模塊的版本號畦幢。每次只要新增了一個模塊坎吻,Yarn 就會創(chuàng)建(或更新)yarn.lock 這個文件。這么做就保證了宇葱,每一次拉取同一個項目依賴時瘦真,使用的都是一樣的模塊版本。npm 其實也有辦法實現(xiàn)處處使用相同版本的 packages贝搁,但需要開發(fā)者執(zhí)行 npm shrinkwrap 命令吗氏。這個命令將會生成一個鎖定文件,在執(zhí)行 npm install 的時候雷逆,該鎖定文件會先被讀取弦讽,和 Yarn 讀取 yarn.lock 文件一個道理。npm 和 Yarn 兩者的不同之處在于膀哲,Yarn 默認(rèn)會生成這樣的鎖定文件往产,而 npm 要通過 shrinkwrap 命令生成 npm-shrinkwrap.json 文件,只有當(dāng)這個文件存在的時候某宪,packages 版本信息才會被記錄和更新仿村。

更簡潔的輸出:npm 的輸出信息比較冗長。在執(zhí)行 npm install <package> 的時候兴喂,命令行里會不斷地打印出所有被安裝上的依賴蔼囊。相比之下焚志,Yarn 簡潔太多:默認(rèn)情況下,結(jié)合了 emoji直觀且直接地打印出必要的信息畏鼓,也提供了一些命令供開發(fā)者查詢額外的安裝信息酱酬。

多注冊來源處理:所有的依賴包,不管他被不同的庫間接關(guān)聯(lián)引用多少次云矫,安裝這個包時膳沽,只會從一個注冊來源去裝,要么是 npm 要么是 bower, 防止出現(xiàn)混亂不一致让禀。

更好的語義化: yarn改變了一些npm命令的名稱挑社,比如 yarn add/remove,感覺上比 npm 原本的 install/uninstall 要更清晰巡揍。

yarn和npm的主要區(qū)別介紹:

\1. yarn雖然和nom一樣是本地緩存痛阻,但是yarn無需互聯(lián)網(wǎng)鏈接就能安裝本地緩存的依賴項,提供了離線模式腮敌,而這個是npm實現(xiàn)不了的录平。

\2. yarn解決了由于語義版本控制而導(dǎo)致的npm的不確定性問題,通過安裝時創(chuàng)建的默認(rèn)文件缀皱,確保使用的庫的版本相同。

\3. yarn增加了一些能讓開發(fā)人員并行化處理所有必需的操作动猬,且通過添加了一些改進啤斗,使得運行速度有了顯著的提升,整個安裝時間也變得更少赁咙。

\4. npm的輸出信息比較冗長钮莲,相比之下,yarn簡潔很多彼水。默認(rèn)情況下崔拥,直觀且直接地打印出必要的信息。

\5. yarn的語義相對于npm更加清晰凤覆,主要是因為yarn改變了一些npm的命令名稱链瓦,看上去就更清晰了。

yarn 和 npm 命令對比

查看版本yarn --version

npm -version(或者 node -v)

安裝淘寶鏡像yarn config set registry 'https://registry.npm.taobao.org'

npm install -g cnpm --registry=http://registry.npm.taobao.org

初始化某個項目yarn init

npm init

默認(rèn)安裝項目依賴yarn install

cnpm install

安裝依賴盯桦,并且默認(rèn)保存到 packageyarn add xxx

cnpm install xxx --save

卸載依賴yarn remove xxx

cnpm uninstall xxx --save

更新依賴yarn upgrade xxx

cnpm update xxx --save

安裝全局項目依賴yarn global add xxx

cnpm install xxx -g

安裝特定版本號的項目依賴yarn add xxx@

cnpm install xxx@1.2.33 --save

發(fā)布/登錄/登出慈俯,一系列NPM Registry操作yarn publish/login/logout npm publish/login/logout

運行命令yarn run/test

npm run/test

參考鏈接:http://www.reibang.com/p/254794d5e741https://xcx.topsage.com/8986.html

https://zhuanlan.zhihu.com/p/291135958

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拥峦,隨后出現(xiàn)的幾起案子贴膘,更是在濱河造成了極大的恐慌,老刑警劉巖略号,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刑峡,死亡現(xiàn)場離奇詭異洋闽,居然都是意外死亡,警方通過查閱死者的電腦和手機突梦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門诫舅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人阳似,你說我怎么就攤上這事骚勘。” “怎么了撮奏?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵俏讹,是天一觀的道長。 經(jīng)常有香客問我畜吊,道長泽疆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任玲献,我火速辦了婚禮殉疼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捌年。我一直安慰自己瓢娜,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布礼预。 她就那樣靜靜地躺著眠砾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪托酸。 梳的紋絲不亂的頭發(fā)上褒颈,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音励堡,去河邊找鬼谷丸。 笑死,一個胖子當(dāng)著我的面吹牛应结,可吹牛的內(nèi)容都是我干的涌乳。 我是一名探鬼主播忿薇,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼乃秀,長吁一口氣:“原來是場噩夢啊……” “哼菱蔬!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起砾层,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤漩绵,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肛炮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體止吐,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡宝踪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了碍扔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘩燥。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖不同,靈堂內(nèi)的尸體忽然破棺而出厉膀,到底是詐尸還是另有隱情,我是刑警寧澤二拐,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布服鹅,位于F島的核電站,受9級特大地震影響百新,放射性物質(zhì)發(fā)生泄漏企软。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一饭望、第九天 我趴在偏房一處隱蔽的房頂上張望仗哨。 院中可真熱鬧,春花似錦铅辞、人聲如沸厌漂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桩卵。三九已至,卻和暖如春倍宾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背胜嗓。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工高职, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辞州。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓怔锌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親变过。 傳聞我的和親對象是個殘疾皇子埃元,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容