1. 程式人生 > >DevOps入門(二)包管理工具yarn與npm對比

DevOps入門(二)包管理工具yarn與npm對比

參考:

一、yarn

FaceBook 開源了 yarn 這個新的 JavaScript 包管理工具,這個和 Exponent, Google, 以及 Tilde 合作完成的專案。 yarn被稱為是npm的升級,開發的目的主要是為了解決npm的痛點,實際上在一般使用中兩者可以混用,除非發現npm的缺陷無法忍受時。

yarn的亮點:

  1. 極致的快速:會快取已經下載過的包,避免重複下載,這特性比npm好多了,不用每次都請求下載 
  2. 離線模式:    之前下載過的包,可以離線再次安裝
  3. 安全:           下載前會檢查簽名及包的完整性
  4. 可靠可確定性 
  5. 保證各平臺依賴的一致性: yarn.lock儲存這你的每個包的確切依賴版本,能確保從本地開發到生產環境的所有機器上都有精確相同的依賴版本。
  6. 網路優化:   力求網路資源最大利用化,讓資源下載完美佇列執行,避免大量的無用請求,下載失敗會自動重新請求,避免整個安裝過程失敗
  7. 扁平化模式:對於不匹配的依賴版本的包創立一個獨立的包,避免建立重複的。
yarn的安裝: Mac下yarn的安裝可以使用終端url的方式:
curl -o- -L https://yarnpkg.com/install.sh | bash


二、yarn的使用

2.1 yarn初始化

yarn的初始化如下:

yarn init #初始化package.json – 和npm一致 


name : 專案名
version : 版本號
description : 專案描述
entry point : 入口檔案
git repository: git專案連結地址
author : 作者
license : 協議

2.2 新增依賴

yarn與npm相同的地方在於,當package.json中定義的模組被第二次安裝且安裝的版本號不同時會產生一個package-lock.json檔案(yarn生成的檔名為yarn.lock),用於保持第一次的版本號狀態,而yarn和npm不同的地方在於,yarn每次安裝後都把package.json和yarn.lock更新至最新,npm則不修改lock檔案。

yarn add [package] — 新增包,會自動安裝最新版本,注意會覆蓋指定版本號!!!
yarn add [package]@[version] — 帶版本號安裝
yarn upgarde  -會遍歷所有依賴,然後全部更新至最新版本
yarn remove [package] — 移除某個包
yarn -安裝所有依賴
yarn install  -安裝所有依賴
yarn add --dev 新增到 devDependencies
yarn add --peer 新增到 peerDependencies
yarn add --optional 新增到 optionalDependencies