Yarn 是快速、可靠、安全的 js 包管理器。
關鍵詞:
,
nodejs
包管理
yarn
簡介
- 快速 - Yarn 會緩存它下載下傳的每個包,是以無需重複下載下傳。它還能并行化操作以最大化資源使用率,安裝速度之快前所未有。
- 安全 - Yarn 會在每個安裝包被執行前校驗其完整性。
- 可靠 - Yarn 使用格式詳盡而又簡潔的 lockfile 檔案和确定性算法來安裝依賴,能夠保證在一個系統上的運作的安裝過程也會以同樣的方式運作在其他系統上。
安裝
先決條件:已安裝 Nodejs。
執行指令:
npm i -g yarn
雖然還有其他安裝方式,但并不推薦。
Yarn 工作流
Yarn 工作流:
- 建立一個新項目
- 增加/更新/删除依賴
- 安裝/重裝你的依賴
- 引入版本控制系統(例如 git)
- 持續內建
Yarn 常用指令
每個指令都會更新
package.json
和
yarn.lock
檔案。
初始化新項目
yarn init
添加依賴包
在使用一個包之前,你需要執行以下指令将其加入依賴項清單:
yarn add [package]
[package]
會被加入到
package.json
檔案中的依賴清單,同時
yarn.lock
也會被更新。
{
"name": "my-package",
"dependencies": {
+ "package-1": "^1.0.0"
}
}
你可以用以下參數添加其它類型的依賴:
-
添加到yarn add --dev
devDependencies
-
yarn add --peer
peerDependencies
-
yarn add --optional
optionalDependencies
通過指定依賴版本和标簽,你可以安裝一個特定版本的包:
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
{
"dependencies": {
"package-1": "1.2.3",
"package-2": "^1.0.0",
"package-3": "beta"
}
}
将依賴項添加到不同依賴項類别
分别添加到
devDependencies
、
peerDependencies
optionalDependencies
:
yarn add [package] --dev
yarn add [package] --peer
yarn add [package] --optional
更新依賴包
yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]
這會更新
package.json
yarn.lock
{
"name": "my-package",
"dependencies": {
- "package-1": "^1.0.0"
+ "package-1": "^2.0.0"
}
}
删除依賴包
yarn remove [package]
package.json
yarn.lock
安裝依賴項
yarn install
是用于安裝一個項目的所有依賴。 Yarn 會從
package.json
中讀取依賴,并将依賴資訊存儲到
yarn.lock
中。
如果你正在開發一個包,通常你會在以下情況之後進行依賴安裝:
- 你剛檢出需要這些依賴項的項目代碼。
- 項目的另一個開發者添加了新的依賴,你需要用到。
有很多參數可以控制依賴安裝的過程,包括:
- 安裝所有依賴 - yarn 或 yarn install
- 安裝一個包的單一版本 - yarn install --flat
- 強制重新下載下傳所有包 - yarn install --force
- 隻安裝生産環境依賴 - yarn install --production
參考: yarn install
的 完整參數清單。
不論是已經有了現成的代碼倉庫(目錄),還是正着手啟動一個全新項目,你都可以使用同樣的方法引入 Yarn。
在指令行終端裡,跳轉到準備引入 Yarn 的目錄(通常是一個項目的根目錄),執行以下指令:
yarn init
這将打開一個用于建立 Yarn 項目的互動式表單,其中包含以下問題:
name (your-project):
version (1.0.0):
description:
entry point (index.js):
git repository:
author:
license (MIT):
你既可以回答這些問題,也可以直接敲Enter鍵(enter/return)使用預設配置或者留白。
配置檔案
為了别人能使用你的包,以下檔案必須被送出進版本控制系統:
-
- 包含包的所有依賴資訊;package.json
-
- 記錄每一個依賴項的确切版本資訊;yarn.lock
- 包實作功能的實際項目代碼。
請參閱Yarn Example Package項目,檢視一個可用的 Yarn 包所需的最少檔案配置。
現在應該建立了一個和下面檔案内容類似的
package.json
{
"name": "my-new-project",
"version": "1.0.0",
"description": "My New Project description.",
"main": "index.js",
"repository": {
"url": "https://example.com/your-username/my-new-project",
"type": "git"
},
"author": "Your Name <[email protected]>",
"license": "MIT"
}
執行
yarn init
之後,除了以上檔案被建立之外,沒有任何副作用。你可以随意編輯此檔案。
package.json
檔案裡存儲了項目的有關資訊。 包括項目名稱、維護者資訊、代碼托管位址,以及最重要的:項目依賴。
引用和引申
👉 歡迎閱讀 我的前端技術教程系列:frontend-tutorial
- Yarn Github
- Yarn 官方文檔