摘要:是一個新的包管理器,它由開發(fā)者共同開發(fā)完成。從包管理器中借鑒,創(chuàng)建了文件,用來記錄項目使用每個包的確切版本。感謝您的閱讀作者煦涵年月日下面是實驗室的微信公眾號二維碼,歡迎長按掃描關(guān)注
Yarn是一個新的Javascript包管理器,它由Facebook, Google, Exponent and Tilde開發(fā)者共同開發(fā)完成。Yarn 不是 NPM 的fork版本,而是它的重新設(shè)計,Yarn 定位為"快速、可靠、安全的依賴管理工具",它的目標(biāo)是解決團隊開發(fā)中使用 NPM 遇到的問題。
隨著 Yarn 的誕生,越來越多的開發(fā)者轉(zhuǎn)向了 Yarn,那么 NPM 在開發(fā)中有哪些問題,Yarn 是如何解決的呢?
NPM 一些潛在的問題:
嵌套依賴 (npm 3.0版本已修復(fù))
串行安裝
單一個 package 來源(npmjs.com)
需要網(wǎng)絡(luò)來安裝軟件包(盡管我們可以創(chuàng)建一個臨時緩存)
允許程序包在安裝時運行代碼(不利于安全性)
不確定的包狀態(tài)(不能確定項目的所有副本使用相同的包版本)
Yarn 解決方案:
單依賴包結(jié)構(gòu): 可以使用單一版本的依賴包,安裝更快速,占用磁盤空間更少
并行安裝: 并行下載依賴包,減少下載時間
多個包來源: Yarn 讀取和安裝 npmjs.com 和 Bower安裝包,如果有個渠道down掉了,可以從另一個渠道下載包并安裝
自動重試: 單個網(wǎng)絡(luò)請求失敗不會導(dǎo)致安裝失敗,請求在失敗后會重試,這解決了由于臨時網(wǎng)絡(luò)問題而產(chǎn)生的構(gòu)建異常
兼容 NPM: 從 NPM 切換到 Yarn 不需要做特殊兼容處理
yarn.lock: 用來管理 javascript 包,這個對于開發(fā)團隊來說可能是最有用的功能了。 在package.json中,依賴的包版本可以被指定為一個范圍,也可以不帶版本號。這個可能會導(dǎo)致一種問題,團隊內(nèi)不同開發(fā)人員使用不同版本的軟件包。我們都知道,復(fù)現(xiàn)環(huán)境的能力與完全相關(guān)的依賴關(guān)系對于高校的調(diào)試和新團隊人員的融入至關(guān)重要。從包管理器(Bundler)中借鑒,Yarn 創(chuàng)建了 yarn.lock文件,用來記錄項目使用每個包的確切版本。當(dāng)將此文件提交至 SVN、GIT 等代碼維護(hù)工具,可以保證項目的所有開發(fā)人員共享一套依賴包的版本號。更多文章請關(guān)注微信公眾號fedlab。
Yarn 的安裝brew install yarn /* Yarn 團隊不推薦 */ npm install -g yarn
不同平臺安裝方式各異,具體參見install
NPM CLI vs Yarn CLI初始化項目
npm init yarn init
從 package.json 安裝依賴
npm install yarn
安裝指定包到依賴或者開發(fā)依賴
npm install --save [package] yarn add [package] npm install --save-dev [package] yarn add [package] [--dev/-D]
安裝包到全局
npm install --global [package] yarn global add [package]
安裝指定版本的包
npm install [package]@[version] yarn add [package]@[version]
重新下載所有包
npm reubild yarn install --force
卸載包
npm uninstall [package] npm uninstall --save [package] yarn remove [package] npm uninstall --save-dev [package]
升級包
rm -rf node_modules && npm install yarn upgrade總結(jié)
相比 NPM,Yarn解決了不確定依賴、網(wǎng)絡(luò)問題、并行下載等問題。然而 NPM 是自己成功的犧牲品,隨著越來越多的開發(fā)者轉(zhuǎn)移使用 Yarn或者其他依賴平臺,NPM 服務(wù)器可以更有效的使用??傊畠蓚€包管理器都很優(yōu)秀,這種相互的關(guān)系,驅(qū)使著各自彼此往更優(yōu)秀的方向前進(jìn),以惠及更多的開發(fā)者。
感謝您的閱讀
--eof--
作者[煦涵]
2017年05月13日
下面是「FED實驗室」的微信公眾號二維碼,歡迎長按、掃描關(guān)注:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/88294.html
摘要:,是一個前端資源加載打包工具,現(xiàn)在版本已經(jīng)到,今天的文章不支持介紹的及使用,而是對最近項目開發(fā)中使用打包時處理低版本及以下瀏覽器兼容問題做一次總結(jié)。 Webpack,Webpack 是一個前端資源加載/打包工具,現(xiàn)在版本已經(jīng) release 到 v2.6.1,今天的文章不支持介紹Webpack的API及使用,而是對最近項目開發(fā)中使用Webpack打包時處理IE低版本(IE8及以下)瀏覽...
摘要:就是一個類似于的包管理工具,它是由推出并開源。二的安裝用法和基本工作流安裝以為例你可以通過包管理工具安裝。在使用一個包之前,你需要執(zhí)行以下命令將其加入依賴項列表會被加入到文件中的依賴列表,同時也會被更新。 一、yarn的背景和介紹一直以來,我們在安裝和管理依賴的時候基本上都會使用npm,npm是一個非常優(yōu)秀全面且廣受歡迎的包管理工具,它奠定了前端模塊化開發(fā)的基石,為前端的發(fā)展做出了不可...
閱讀 2774·2021-11-18 10:02
閱讀 2358·2021-09-30 09:47
閱讀 1932·2021-09-27 14:01
閱讀 3218·2021-08-16 11:00
閱讀 3232·2019-08-30 11:06
閱讀 2463·2019-08-29 17:29
閱讀 1606·2019-08-29 13:19
閱讀 505·2019-08-26 13:54