一、yarn的背景和介紹
一直以來,我們在安裝和管理依賴的時候基本上都會使用npm,npm是乙個非常優秀全面且廣受歡迎的包管理工具,它奠定了前端模組化開發的基石,為前端的發展做出了不可磨滅的貢獻。
yarn就是乙個類似於npm的包管理工具,yarn是乙個新的快速安全可信賴的依賴管理工具,它是由facebook推出並開源。鑑於facebook在前端界的影響力,yarn一面世就很受矚目,受到了前端界的廣泛歡迎。
與npm相比,yarn有著眾多的優勢,主要的優勢在於:速度快,離線模式,版本控制。
此外yarn和npm在命令列的輸入上也有很大區別:
1、速度快。
npm會等乙個包完全安裝完才跳到下乙個包,但yarn會並行執行包,因此速度會快很多。網上有不少比較npm和yarn安裝同樣多依賴的執行速度,yarn在速度方面優勢明顯。實際專案中體驗一下真是飛一樣的速度,誰有試過誰知道~
2、離線模式,
3、版本控制
npm用下來比較強的乙個痛點就是:當包 的依賴層次比較深時,版本控制不夠精確。會出現相同package.json,但不同人的電腦上安裝出不同版本的依賴包,出現類似 「我電腦上是好的,沒問題呀」的bug很難查詢。你可以使用npm-shrinkwrap來實現版本固化,版本資訊會寫入npm-shrinkwrap.json檔案中,但它畢竟不是npm的標準配置。
而yarn天生就能實現版本固化。會生成乙個類似npm-shrinkwrap.json的yarn.lock檔案,檔案內會描述包自身的版本號,還會鎖定所有它依賴的包的版本號:
yarn.lock儲存你的每個包的確切依賴版本,能確保從本地環境到開發環境,所有機器上都有精確相同的依賴版本。
1、安裝(以mac為例)
homebrew
你可以通過 homebrew 包管理工具安裝 yarn。 如果你還未安裝 node.js,homebrew 會自動為你安裝。
brew update
brew install yarn
設定路徑
你需要設定你終端的path
環境變數,以便全域性訪問 yarn 的可執行檔案。
新增`export path="$path:`yarn global bin`"`
到你的 profile 檔案(也可能是.profile
、.bashrc
、.zshrc
等檔案)。
2、用法
初始化乙個新的專案
yarn init
新增乙個依賴包
yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]
更新乙個依賴包
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]
刪除乙個依賴包
yarn remove [package]
安裝所有的依賴包
yarn
or
yarn install
3、工作流
對於依賴管理來說,在專案中使用乙個新的包管理器就是使用了乙個新的工作流。 yarn 將盡其最大的努力不侵入你的工作方式,並且使其工作流中的每一步都能簡單易懂。
您需要知道一些基本的工作流的知識:
建立乙個新的專案
新增/更新/刪除依賴包
安裝/重新安裝依賴包
使用版本管理工具(例如 git)
持續整合
(1)、建立乙個新專案
不論是已經有了現成的**倉庫(目錄),還是正著手啟動乙個全新專案,你都可以使用同樣的方法引入yarn。
在命令列終端裡,跳轉到準備引入yarn的目錄(通常是乙個專案的根目錄),執行以下命令:
yarn init
這將開啟乙個用於建立yarn專案的互動式表單,其中包含以下問題:
name (your-project):
version (1.0
.0):
description:
entry
point (index
.js):
gitrepository:
author:
license (mit):
你既可以回答這些問題,也可以直接敲回車鍵(enter/return)使用預設配置或者留空。
現在應該建立了乙個和下面檔案內容類似的package.json
:
,
"author": "your name ",
"license": "mit"
}
執行yarn init
之後,除了以上檔案被建立之外,沒有任何***。你可以隨意編輯此檔案。
package.json
檔案裡儲存了專案的有關資訊。 包括專案名稱、維護者資訊、**託管位址,以及最重要的:專案依賴。
(2)、管理依賴項
你需要了解幾若干個用於增加、更新、刪除依賴項的命令。
每個命令都會更新package.json
和yarn.lock
檔案。
在使用乙個包之前,你需要執行以下命令將其加入依賴項列表:
yarn add [package]
[package]
會被加入到package.json
檔案中的依賴列表,同時yarn.lock
也會被更新。
}
你可以用以下引數新增其它型別的依賴:
yarn add [package]@[version]
yarn add [package]@[tag]
[version]
或[tag]
會被新增到package.json
,並在安裝依賴時被解析。
例如:
yarn add [email protected]
yarn add package-2@^1.0.0
yarn add package-3
@beta
}
更新依賴包
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]
這會更新package.json
和yarn.lock
檔案。
}
刪除依賴包
yarn remove [package]
這會更新package.json
和yarn.lock
檔案。
(3)、安裝依賴項
如果剛從版本控制系統裡 checkout 乙個包,則需要為其安裝依賴。
如果是為現有的包增加依賴,那麼這些新的依賴會自動安裝。
yarn install
是用於安裝乙個專案的所有依賴。 yarn會從package.json
中讀取依賴,並將依賴資訊儲存到yarn.lock
中。
如果你正在開發乙個包,通常你會在以下情況之後進行依賴安裝:
你剛檢出需要這些依賴項的專案**。
專案的另乙個開發者新增了新的依賴,你需要用到。
安裝選項
有很多引數可以控制依賴安裝的過程,包括:
安裝所有依賴:yarn
或yarn install
安裝乙個包的單一版本:yarn install --flat
只安裝生產環境依賴:yarn install --production
您可以傳遞給yarn install
的 完整引數列表。
(4)、配合版本控制
為了使其他人能夠使用你的包,或者能夠對其進行後續開發,你需要確保將所有必須的檔案提交到你所使用的版本控制系統。
為了別人能使用你的包,以下檔案必須被提交進版本控制系統:
入門gulp前端構建工具
1.全域性安裝 gulp 倘若之前電腦安裝過,則跳過此步驟 cnpm install g gulp 2.作為專案的開發依賴 devdependencies 安裝 此步驟會自動在目錄下建立package.json檔案,因此無需cnpm init cnpm install s e dev gulp 3....
前端構建工具
一 什麼是 自動化 構建工具 構建工具是一種自動化工具。一般專案都有較多的檔案,為開發維護方便拆分單個的模組,在發布的時候,對拆分後的各模組進行合併,壓縮等,構建工具可以幫完成這些重複的工作。二 什麼是包管理工具 可以安裝 解除安裝 更新 檢視 搜尋 發布等功能。類似grunt,gulp構建工具,和...
前端構建工具
devdependencies gulp強調的是前端開發的工作流程,側重於前端開發的整個過程的控制管理 像是流水線 我們可以通過配置一系列的task,定義task處理的事務 例如檔案壓縮合併 雪碧圖 啟動server 版本控制等 然後定義執行順序,來讓gulp執行這些task,從而構建專案的整個前端...