Yarn
是facebook
發布的一款取代npm
的包管理工具
Yarn
緩存了每個下載過的包,所以再次使用時無需重複下載。 同時利用並行下載以最大化資源利用率,因此安裝速度更快Yarn
會透過演算法校驗每個安裝包的完整性Yarn
能夠保證在不同系統上無差異的工作透過npm install -g
全域去安裝yarn
套件管理工具,預設安裝的版本是yarn 1
版本
# 全域安裝npm install -g yarn # 查看yran安裝版本yarn --version # 顯示指令列表yarn help2-2 專案安裝
在專案中需要使用yarn 2
,可以在專案更目錄安裝333
「Berry」 是Yarn 2 發布序列的代號,同時也是我們的代碼倉庫的名稱!
yarn set version berry2-3 yarn更新
將yarn
更新到最新版本, yarn
會從我們的網站下載最新的二進位文件,並將其安裝在您的專案中
將專案中的套件管理工具升級為
Yarn 2
,此後如果需要對此Yarn 2
進行升級,則可以使用yarn set version latest
進行升級,否則仍是對Yarn 1
進行操作
yarn set version latest2-4 安裝maste分支最新版
嘗試最新的master
程式碼分支
yarn set version from sources
可以使用--branch
參數來指定要安裝特定的分支節點
yarn set version from sources --branch 1211
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
yarn init
用來初始化產生一個新的package.json
文件
D:My Study 8-Node.js 2-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.json
和yarn.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> -T4-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] -O4-5 升級依賴
根據需要將安裝好的依賴套件進行升級
# 更新所有軟體包yarn up # 升級到最新版本yarn up [packageName] # 升級到指定版本yarn up [packageName]@[version] # 升級到指定tag版本yarn up [packageName]@[tag]4-6 刪除依賴
從專案中刪除依賴項dependencies
,會自動更新package.json
和yarn.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] --force4-8 運行指令
yarn run
用來執行在package.json
中scripts
屬性下定義的腳本
// package.json { "scripts": { "dev": "node app.js", "start": "node app.js" } }
yarn
與npm
一樣可以有yarn start
和yarn test
兩個簡寫的運行腳本方式
# yarn 執行dev 對應的腳本node app.js yarn run dev npm run yarn start # yarn npm start # npm4-9 快取控制
列出已快取的每個包
yarn cache list
全域快取位置
yarn cache dir
清除快取
yarn cache clean4-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