yarn 構建工具入門

2021-08-20 14:43:47 字數 4591 閱讀 3631

一、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.jsonyarn.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.jsonyarn.lock檔案。

}

刪除依賴包

yarn remove [package]
這會更新package.jsonyarn.lock檔案。

(3)、安裝依賴項

如果剛從版本控制系統裡 checkout 乙個包,則需要為其安裝依賴。

如果是為現有的包增加依賴,那麼這些新的依賴會自動安裝。

yarn install是用於安裝乙個專案的所有依賴。 yarn會從package.json中讀取依賴,並將依賴資訊儲存到yarn.lock中。

如果你正在開發乙個包,通常你會在以下情況之後進行依賴安裝:

你剛檢出需要這些依賴項的專案**。

專案的另乙個開發者新增了新的依賴,你需要用到。

安裝選項

有很多引數可以控制依賴安裝的過程,包括:

安裝所有依賴:yarnyarn 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,從而構建專案的整個前端...