Yarn 是快速、可靠、安全的 js 包管理器。
關鍵詞:
nodejs
,包管理
,yarn
簡介
Yarn 是快速、可靠、安全的 js 包管理器。
- 快速 - 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 package-1@1.2.3
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/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 <you@example.com>",
"license": "MIT"
}
執行yarn init
之后,除了以上文件被創建之外,沒有任何副作用。你可以隨意編輯此文件。
package.json
文件里存儲了項目的有關信息。 包括項目名稱、維護者信息、代碼托管地址,以及最重要的:項目依賴。
引用和引申
👉 歡迎閱讀 我的前端技術教程系列:frontend-tutorial