一文淺析JS包管理工具:yarn

2022-08-09 18:04:19
yarn 和 npm 一樣也是 JavaScript 包管理工具,下面本篇文章就來帶大家瞭解一下yarn包管理工具,希望對大家有所幫助!

1. yarn簡介

Yarnfacebook 釋出的一款取代 npm 的包管理工具

  • 速度超快 —— Yarn 快取了每個下載過的包,所以再次使用時無需重複下載。 同時利用並行下載以最大化資源利用率,因此安裝速度更快
  • 超級安全 —— 在執行程式碼之前,Yarn 會通過演演算法校驗每個安裝包的完整性
  • 超級可靠 —— 使用詳細、簡潔的鎖檔案格式和明確的安裝演演算法,Yarn 能夠保證在不同系統上無差異的工作

2. yarn安裝與更新

2-1 全域性安裝

通過 npm install -g 全域性去安裝 yarn 包管理工具,預設安裝的版本是 yarn 1 版本

# 全域性安裝
npm install -g yarn

# 檢視yran安裝版本
yarn --version

# 顯示命令列表
yarn help

2-2 專案安裝

在專案中需要使用 yarn 2,可以在專案更目錄安裝333

「Berry」 是 Yarn 2 釋出序列的代號,同時也是我們的 程式碼倉庫 的名稱!

yarn set version berry

2-3 yarn更新

yarn 更新到最新版本,yarn 會從我們的網站下載最新的二進位制檔案,並將其安裝在您的專案中

將專案中的包管理工具升級為 Yarn 2,此後如果需要對此 Yarn 2 進行升級,則可以使用 yarn set version latest 進行升級,否則仍是對 Yarn 1 進行操作

yarn set version latest

2-4 安裝maste分支最新版

嘗試最新的 master 程式碼分支

yarn set version from sources

可以使用 --branch 引數來指定要安裝特定的分支節點

yarn set version from sources --branch 1211

3. 映象管理

3-1 安裝淘寶映象

修改國內映象後可以加快軟體包安裝速度

檢視當前使用的映象

yarn config get registry

新增 yarn 的淘寶映象

yarn config set registry https://registry.npm.taobao.org -g

# 恢復預設
yarn config set registry http://registry.npmjs.org/

# 安裝sass
yarn config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/

3-2 yrm映象管理

yrm 是管理映象的工具,可以列出可以使用的映象,非常方便

安裝 yrm

npm install -g yrm

列出可以使用的映象

yrm ls

使用淘寶映象

yrm use taobao

測試映象速度

yrm test taobao

4. yarn使用

4-1 初始化專案

yarn init 用來初始化生成一個新的 package.json 檔案

D:\My Study\08-Node.js\02-yarn>yarn init
yarn init v1.22.19
question name (02-yarn): yarn-init
question version (1.0.0):
question description: 初始化設定
question entry point (index.js):
question repository url:
question author (jsx <[email protected]> (https://github.com/xiaofeilalala)):
question license (MIT):
question private:
success Saved package.json
Done in 29.32s.
{
  "name": "yarn-init",
  "version": "1.0.0",
  "description": "初始化設定",
  "main": "index.js",
  "author": "jsx <[email protected]> (https://github.com/xiaofeilalala)",
  "license": "MIT"
}

4-2 設定設定項

通過 yarn config 去設定顯示刪除設定項

yarn config list // 顯示所有設定項
yarn config get <key> //顯示某設定項
yarn config delete <key> //刪除某設定項
yarn config set <key> <value> [-g|--global] //設定設定項

4-3 安裝依賴

安裝所有依賴

yarn install

強制重新下載所有包

yarn install --force

新增依賴項,會自動更新到 package.jsonyarn.lock 檔案中

# 安裝最新版本
yarn add [packageName] 

# 安裝指定版本
yarn add [packageName]@<version>

# 安裝指定tag版本 beta,next或者latest
yarn add [packageName]@<tag>

安裝包的精確版本,例如: yarn add [email protected] 會接受 1.9.1 版本,但是 yarn add [email protected] --exact 只能安裝指定 1.2.3 版本

 yarn add [packageName]@<version> --exact
 yarn add [packageName]@<version> -E

安裝包的次要版本里的最新版,例如:yarn add [email protected] --title 會接受 1.2.9,但不接受 1.3.0

yarn add [packageName]@<version> --title
yarn add [packageName]@<version> -T

4-4 不同依賴類

在一個 Node.js 專案中,package.json 幾乎是一個必須的檔案,它的主要作用就是管理專案中所使用到的外部依賴包,同時它也是 npm 命令的入口檔案

npm 目前支援以下幾類依賴包管理:

  • dependencies
  • devDependencies
  • peerDependencies
  • optionalDependencies
  • bundledDependencies / bundleDependencies

dependencies

應用依賴,或者叫做業務依賴,這是我們最常用的依賴包管理物件!它用於指定應用依賴的外部包,這些依賴是應用釋出後正常執行時所需要的,但不包含測試時或者本地打包時所使用的包。

devDependencies

開發環境依賴,僅次於 dependencies 的使用頻率!它的物件定義和 dependencies 一樣,只不過它裡面的包只用於開發環境,不用於生產環境,這些包通常是單元測試或者打包工具等,例如gulp, grunt, webpack, moca, coffee

peerDependencies

同等依賴,或者叫同伴依賴,用於指定當前包(也就是你寫的包)相容的宿主版本。如何理解呢? 試想一下,我們編寫一個 gulp 的外掛,而 gulp 卻有多個主版本,我們只想相容最新的版本,此時就可以用同等依賴(peerDependencies)來指定

optionalDependencies

可選依賴,如果有一些依賴包即使安裝失敗,專案仍然能夠執行或者希望npm繼續執行,就可以使用 optionalDependencies。另外optionalDependencies 會覆蓋 dependencies 中的同名依賴包,所以不要在兩個地方都寫

bundledDependencies / bundleDependencies

打包依賴,bundledDependencies 是一個包含依賴包名的陣列物件,在釋出時會將這個物件中的包打包到最終的釋出包裡

不指定依賴型別預設安裝到 dependencies 裡,你也可以指定依賴型別

# 新增到 devDependencies 依賴項
yarn add [package]@[version] --dev
yarn add [package]@[version] -D

# 新增到 peerDependencies 依賴項
yarn add [package]@[version] --peer
yarn add [package]@[version] -P

# 新增到 optionalDependencies 依賴項
yarn add [package]@[version] --optional
yarn add [package]@[version] -O

4-5 升級依賴

根據需要將安裝好的依賴包進行升級

# 更新所有軟體包
yarn up

# 升級到最新版本
yarn up [packageName]

# 升級到指定版本
yarn up [packageName]@[version]

# 升級到指定tag版本
yarn up [packageName]@[tag]

4-6 刪除依賴

從專案中刪除依賴項 dependencies,會自動更新 package.jsonyarn.lock

yarn remove [packageName]

刪除 yarn 全域性軟體包

yarn remove -g [packageName]

4-7 釋出模組

yarn publish 用於將當前模組釋出到 http://npmjs.com

如果已經註冊過,就使用下面的命令登入

yarn login

退出登入 npm 倉庫

yarn logout

登入以後,就可以使用 npm publish 命令釋出

yarn publish

復原釋出的模組 npm unpublish

# 刪除某個版本
yarn unpublish [packageName]@<version>  
# 刪除整個npm市場的包
yarn unpublish [packageName] --force

4-8 執行命令

yarn run 用來執行在 package.jsonscripts 屬性下定義的指令碼

// package.json
{
  "scripts": {
  "dev": "node app.js",
  "start": "node app.js"
  }
}

yarnnpm 一樣 可以有 yarn startyarn test 兩個簡寫的執行指令碼方式

# yarn 執行 dev 對應的指令碼 node app.js
yarn run dev 
npm run

yarn start # yarn
npm start # npm

4-9 快取控制

列出已快取的每個包

yarn cache list

全域性快取位置

yarn cache dir

清除快取

yarn cache clean

4-10 模組資訊

yarn info 可以用來檢視某個模組的最新版本資訊

yarn info [packageName] # yarn 
npm info [packageName] # npm

yarn info [packageName] --json # 輸出 json 格式
npm info [packageName]  --json # npm

yarn info [packageName] readme # 輸出 README 部分
npm info [packageName] readme

更多程式設計相關知識,請存取:!!

以上就是一文淺析JS包管理工具:yarn的詳細內容,更多請關注TW511.COM其它相關文章!