yarn學(xué)習(xí)

yarn常見使用方法列在這,方便自己查閱,大家也可以直接到官網(wǎng)查看,這些內(nèi)容在官網(wǎng)上都有,我轉(zhuǎn)錄在這里,只是為了加強(qiáng)記憶。

先看官網(wǎng)的介紹,清晰明了,對我來說就是,將會是Yarn比npm好用,可以用yarn來替代npm,兩者之間用法相似,但最好不要混合使用:

Yarn 對你的代碼來說是一個包管理器, 你可以通過它使用全世界開發(fā)者的代碼,或者分享自己的代碼。 Yarn 做這些快捷、安全、可靠,所以你不用擔(dān)心什么。

通過Yarn你可以使用其他開發(fā)者針對不同問題的解決方案,使自己的開發(fā)過程更簡單。 使用過程中遇到問題,你可以將其上報或者貢獻(xiàn)解決方案。一旦問題被修復(fù),Yarn會更新保持同步。

代碼通過包(package)(或者稱為模塊(module))的方式來共享。 一個包里包含所有需要共享的代碼,以及描述包信息的文件,稱為package.json.

安裝

在常見的 Linux 系統(tǒng)上,比如說 Debian、Ubuntu 和 CentOS,推薦通過我們的包來安裝 Yarn,沒必要記憶,安裝的時候直接官網(wǎng)走起。

$curl -o- -L https://yarnpkg.com/install.sh | bash

或者
通過 npm 安裝:

$npm install --global yarn

運(yùn)行命令來測試 Yarn 是否安裝:

$yarn --version
1.15.2

入門使用

  1. 初始化新項目
$yarn init
  1. 添加依賴包
$yarn add [package]
$yarn add [package]@[version]
$yarn add [package]@[tag]
  1. 將依賴項添加到不同依賴項類別
    分別添加到 devDependencies、peerDependencies 和 optionalDependencies:
$yarn add [package] --dev
$yarn add [package] --peer
$yarn add [package] --optional
  1. 升級依賴包
$yarn upgrade [package]
$yarn upgrade [package]@[version]
$yarn upgrade [package]@[tag]

5.移除依賴包

$yarn remove [package]
  1. 安裝項目的全部依賴
$yarn
或者
$yarn install

Yarn 工作流

你的項目在引入了包管理器的同時,也引入了一套新的圍繞著依賴項開發(fā)的工作流程。Yarn盡力不改變你的工作流程,并使流程中的每一步都簡單明了.

關(guān)于基本工作流你應(yīng)該知道幾個簡單的事:

  1. 創(chuàng)建一個新項目
  2. 增加/更新/刪除依賴
  3. 安裝/重裝你的依賴
  4. 引入版本控制系統(tǒng)(例如 git)
  5. 持續(xù)集成

創(chuàng)建一個項目:

不論是已經(jīng)有了現(xiàn)成的代碼倉庫(目錄),還是正著手啟動一個全新項目,你都可以使用同樣的方法引入Yarn。

在命令行終端里,跳轉(zhuǎn)到準(zhǔn)備引入Yarn的目錄(通常是一個項目的根目錄),執(zhí)行以下命令:

$yarn init

這將打開一個用于創(chuàng)建Yarn項目的交互式表單,其中包含以下問題:

name (your-project):
version (1.0.0):
description:
entry point (index.js):
git repository:
author:
license (MIT):

你既可以回答這些問題,也可以直接敲回車鍵(enter/return)使用默認(rèn)配置或者留空。

package.json

現(xiàn)在應(yīng)該創(chuàng)建了一個和下面文件內(nèi)容類似的 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"
}

執(zhí)行yarn init之后,除了以上文件被創(chuàng)建之外,沒有任何副作用。你可以隨意編輯此文件。

管理依賴項

package.json文件里存儲了項目的有關(guān)信息。 包括項目名稱、維護(hù)者信息、代碼托管地址,以及最重要的:項目依賴。
你需要了解幾若干個用于增加、更新、刪除依賴項的命令。
每個命令都會更新package.jsonyarn.lock 文件。

  1. 添加依賴包
    在使用一個包之前,你需要執(zhí)行以下命令將其加入依賴項列表:
yarn add [package]

[package]會被加入到package.json文件中的依賴列表,同時yarn.lock也會被更新。
你可以用以下參數(shù)添加其它類型的依賴:

  • yarn add --dev 添加到 devDependencies
  • yarn add --peer 添加到 peerDependencies
  • yarn add --optional 添加到 optionalDependencies

通過指定依賴版本標(biāo)簽,你可以安裝一個特定版本的包:

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"
  }
}

2.更新依賴包

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"
    }
  }

3.刪除依賴包

yarn remove [package]

這會更新package.jsonyarn.lock 文件。

如果剛從版本控制系統(tǒng)里 checkout 一個包,則需要為其安裝依賴。

如果是為現(xiàn)有的包增加依賴,那么這些新的依賴會自動安裝。

安裝依賴項

yarn install 是用于安裝一個項目的所有依賴。 Yarn會從package.json中讀取依賴,并將依賴信息存儲到yarn.lock中。

如果你正在開發(fā)一個包,通常你會在以下情況之后進(jìn)行依賴安裝:

  • 你剛檢出需要這些依賴項的項目代碼。
  • 項目的另一個開發(fā)者添加了新的依賴,你需要用到。
  1. 安裝選項
    有很多參數(shù)可以控制依賴安裝的過程,包括:

  2. 安裝所有依賴:yarnyarn install

  3. 安裝一個包的單一版本:yarn install --flat

  4. 強(qiáng)制重新下載所有包:yarn install --force

  5. 只安裝生產(chǎn)環(huán)境依賴:yarn install --production

查看您可以傳遞給 yarn install完整參數(shù)列表

配合版本控制

為了使其他人能夠使用你的包,或者能夠?qū)ζ溥M(jìn)行后續(xù)開發(fā),你需要確保將所有必須的文件提交到你所使用的版本控制系統(tǒng)。

所需的文件

為了別人能使用你的包,以下文件必須被提交進(jìn)版本控制系統(tǒng):

  • package.json:包含包的所有依賴信息;
  • yarn.lock:記錄每一個依賴項的確切版本信息;
  • 包實現(xiàn)功能的實際項目代碼。

請參閱Yarn Example Package項目,查看一個可用的Yarn包所需的最少文件配置。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容