Phoenix and Yarn

什么是Yarn?

在 JavaScript 社區(qū)中作瞄,工程師們互相分享成千上萬的代碼茶宵,幫助我們節(jié)省大量編寫基礎(chǔ)組件、類庫或框架的時(shí)間宗挥。每個(gè)代碼包可能都依賴于其他代碼乌庶,而代碼間的依賴關(guān)系則由包管理器負(fù)責(zé)維護(hù)。目前最流行的 JavaScript 包管理器是 npm 客戶端契耿,在 npm 倉庫中提供了多達(dá) 30 萬的軟件包瞒大。據(jù)統(tǒng)計(jì),已有超過 500 萬的工程師使用 npm 倉庫宵喂,其軟件包下載量達(dá)到了 50 億次/月糠赦。

在 Facebook 中,我們多年來一直在使用 npm 客戶端并取得了成功,但隨著代碼倉庫與團(tuán)隊(duì)人數(shù)的增長拙泽,我們在一致性淌山、安全性以及性能方面遇到了挑戰(zhàn)。在嘗試解決每個(gè)方面的問題后顾瞻,我們最終決定著手打造一套新的客戶端解決方案泼疑,以幫助我們更可靠地管理依賴。我們把這個(gè)客戶端工具稱為 Yarn —— 更加快速荷荤、可靠退渗、安全的 npm 客戶端的替代品。

我們在此榮幸地宣布蕴纳,我們與 Exponent会油、 Google 和 Tilde 進(jìn)行了合作,并開源 Yarn 項(xiàng)目古毛。工程師在使用 Yarn 時(shí)翻翩,依然需要訪問 npm 倉庫,但 Yarn
能夠更快速地安裝軟件包和管理依賴關(guān)系稻薇,并且可以在跨機(jī)器或者無網(wǎng)絡(luò)的安全環(huán)境中保持代碼的一致性嫂冻。Yarn 提高了開發(fā)效率,并解決了共享代碼時(shí)面臨的一些問題塞椎,使得工程師們可以專注在構(gòu)建新產(chǎn)品以及新特性上桨仿。

我們可以通過

npm install -g yarn

來安裝yarn包管理器。

Phoenix + Yarn

Phoenix + Brunch + Yarn

mix phoenix.new pxyarn
這里是否install依賴我們選擇no案狠。

根據(jù)phoenix自動生成的帶有brunch的package.json文件服傍,根據(jù)這個(gè)文件使用yarn來進(jìn)行npm模塊的安裝。

然后就是yarn登場啦骂铁!

? yarn install
yarn install v0.15.1
info No lockfile found.
[1/4] ??  Resolving packages...
[2/4] ??  Fetching packages...
[3/4] ??  Linking dependencies...
[4/4] ??  Building fresh packages...
success Saved lockfile.
?  Done in 41.98s.

然后再安裝剩余的 mix 擴(kuò)展

mix deps.get

我們看一下空間占用:

對比 npm 的 phoenix 項(xiàng)目:

mix phoenix.new pxnpm
Fetch and install dependencies? [Yn] Y

在 Node 生態(tài)系統(tǒng)中伴嗡,依賴通常安裝在項(xiàng)目的 node_modules
文件夾中。然而从铲,這個(gè)文件的結(jié)構(gòu)和實(shí)際依賴樹可能有所區(qū)別,因?yàn)橹貜?fù)的依賴可以合并到一起澄暮。npm 客戶端把依賴安裝到 node_modules 目錄的過程具有不確定性名段。這意味著當(dāng)依賴的安裝順序不同時(shí),node_modules 目錄的結(jié)構(gòu)可能會發(fā)生變化泣懊。這種差異可能會導(dǎo)致類似“我的機(jī)子上可以運(yùn)行伸辟,別的機(jī)子不行”的情況,并且通常要花費(fèi)大量時(shí)間定位與解決馍刮。

Yarn 通過 lockfiles 文件以及一個(gè)確定性的信夫、可靠的安裝算法,解決了版本問題和 npm 的不確定性問題。Lockfile 文件把安裝的軟件包版本鎖定在某個(gè)特定版本静稻,并保證 node_modules 目錄在所有機(jī)器上的安裝結(jié)果都是相同的警没。Lockfile 還使用簡潔的有序鍵名的格式,保證了每次的文件變化最小化振湾,進(jìn)行代碼審查也更為簡單杀迹。

Phoenix + Webpack + React + Yarn

使用Webpack之前,我們需要首先修改package.json

"dependencies": {
    "react": "^15.4.0-rc.4",
    "react-dom": "^15.3.2",
    "react-router": "^2.8.1"
  },
  "devDependencies": {
    "babel": "^6.5.2",
    "babel-core": "^6.17.0",
    "babel-loader": "^6.2.5",
    "babel-preset-es2015": "^6.16.0",
    "babel-preset-react": "^6.16.0",
    "history": "^4.3.0",
    "react-hot-loader": "^3.0.0-beta.6",
    "webpack": "^1.13.2",
    "webpack-dev-server": "^1.16.2"
  },
yarn install

你也可以自行添加依賴押搪,輸入 yarn add xxx 即可树酪。

yarn add react 
yarn add webpack --dev 

Refs

為什么我不使用 shrinkwrap(lock)
Facebook 發(fā)布了新的 Node 模塊管理器 Yarn,或取代 npm 客戶端
使用yarn 制作一個(gè)webpack + react 種子

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末大州,一起剝皮案震驚了整個(gè)濱河市续语,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厦画,老刑警劉巖疮茄,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異苛白,居然都是意外死亡娃豹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進(jìn)店門购裙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來懂版,“玉大人,你說我怎么就攤上這事躏率∏耄” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵薇芝,是天一觀的道長蓬抄。 經(jīng)常有香客問我,道長夯到,這世上最難降的妖魔是什么嚷缭? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮耍贾,結(jié)果婚禮上阅爽,老公的妹妹穿的比我還像新娘。我一直安慰自己荐开,他們只是感情好付翁,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著晃听,像睡著了一般百侧。 火紅的嫁衣襯著肌膚如雪砰识。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天佣渴,我揣著相機(jī)與錄音辫狼,去河邊找鬼。 笑死观话,一個(gè)胖子當(dāng)著我的面吹牛予借,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播频蛔,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼灵迫,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了晦溪?” 一聲冷哼從身側(cè)響起瀑粥,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎三圆,沒想到半個(gè)月后狞换,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡舟肉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年修噪,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片路媚。...
    茶點(diǎn)故事閱讀 39,688評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡黄琼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出整慎,到底是詐尸還是另有隱情脏款,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布裤园,位于F島的核電站撤师,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拧揽。R本人自食惡果不足惜剃盾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望淤袜。 院中可真熱鬧万俗,春花似錦、人聲如沸饮怯。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蓖墅。三九已至库倘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間论矾,已是汗流浹背教翩。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贪壳,地道東北人饱亿。 一個(gè)月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像闰靴,于是被迫代替她去往敵國和親彪笼。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評論 2 353

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