跳至主要內容

yarn add

新增相依性至專案。

用法

$ yarn add ...

範例

新增一般套件至目前工作區

yarn add lodash

新增特定套件版本至目前工作區

yarn add lodash@1.2.3

使用 URL 新增 GitHub 存放庫(主分支)中的套件至目前工作區

yarn add lodash@https://github.com/lodash/lodash

使用 GitHub 協定新增 GitHub 存放庫(主分支)中的套件至目前工作區

yarn add lodash@github:lodash/lodash

使用 GitHub 協定(簡寫)新增 GitHub 存放庫(主分支)中的套件至目前工作區

yarn add lodash@lodash/lodash

使用 GitHub 協定(簡寫)新增特定分支的 GitHub 存放庫中的套件至目前工作區

yarn add lodash-es@lodash/lodash#es

詳細資料

此命令會新增套件至最近工作區的 package.json。

  • 如果套件之前不存在,則預設會將套件新增至一般 相依性 欄位,但可以透過 -D,--dev 旗標(會將相依性新增至 devDependencies 欄位)和 -P,--peer 旗標(會執行相同動作,但套用於 peerDependencies)來覆寫此行為。

  • 如果套件已列在相依性中,則預設會升級,無論它是 相依性devDependencies 的一部分(但永遠不會更新 peerDependencies)。

  • 如果設定,--prefer-dev 旗標將作為一個更靈活的 -D,--dev,它會將套件新增到您的 devDependencies 中,如果它尚未列在 dependenciesdevDependencies 中,但它也會很樂意升級您的 dependencies,如果那是您已經在使用(而 -D,--dev 會擲回例外)。

  • 如果設定,-O,--optional 旗標會將套件新增到 optionalDependencies 欄位中,並與 -P,--peer 旗標結合,它會將套件新增為一個可選的同儕相依性。如果套件已經列在您的 dependencies 中,它將會升級到 optionalDependencies。如果套件已經列在您的 peerDependencies 中,與 -P,--peer 旗標結合,它將會升級到一個可選的同儕相依性:"peerDependenciesMeta": { "<package>": { "optional": true } }

  • 如果新增的套件完全未指定範圍,它的 latest 標籤將會被解析,而傳回的版本將會用來產生一個新的 semver 範圍(預設使用 ^ 修改器,除非透過 defaultSemverRangePrefix 設定進行另行設定,或如果指定 -T,--tilde 則使用 ~ 修改器,或如果指定 -E,--exact 則完全不使用修改器)。這個規則的兩個例外:第一個是如果套件是一個工作區,則會使用它的本機版本,第二個是如果您使用 -P,--peer,預設範圍將會是 *,而且完全不會被解析。

  • 如果新增的套件指定一個範圍(例如 ^1.0.0latestrc),Yarn 會將這個範圍原樣新增到產生的 package.json 條目中(特別是,例如 rc 的標籤會原樣編碼,而不是轉換成 semver 範圍)。

如果使用 --cached 選項,Yarn 會優先重複使用專案中某處已使用的最高版本,即使是透過傳遞依賴項。

如果使用 -i,--interactive 選項(或如果 preferInteractive 設定已切換為開啟),命令會先嘗試檢查專案中的其他工作空間是否使用指定的套件,如果使用,會提供重複使用的選項。

如果設定 --mode=<mode> 選項,Yarn 會變更產生哪些成品。目前支援的模式為

  • skip-build 完全不會執行建置指令碼。請注意,這與將 enableScripts 設定為 false 不同,因為後者會停用建置指令碼,因此會影響磁碟上產生的成品內容,而前者只會停用建置步驟,但不會停用指令碼本身,只會讓它們無法執行。

  • update-lockfile 會完全略過連結步驟,只會擷取鎖定檔中缺少的套件(或沒有關聯檢查碼的套件)。此模式通常由 Renovate 或 Dependabot 等工具使用,以在不產生完整安裝成本的情況下,讓鎖定檔保持最新狀態。

如需所有支援通訊協定的彙編,請參閱我們網站的專屬頁面:https://yarn.dev.org.tw/protocols

選項

定義說明

--json

以 NDJSON 串流格式輸出

-F,--fixed

依原樣儲存依賴項標籤,而不是解析它們

-E,--exact

不要在已解析範圍上使用任何 semver 修改器

-T,--tilde

在已解析範圍上使用 ~ semver 修改器

-C,--caret

在已解析範圍上使用 ^ semver 修改器

-D,--dev

將套件新增為開發依賴項

-P,--peer

將套件新增為同儕依賴項

-O,--optional

將套件新增或升級為可選的一般或同儕依賴項

--prefer-dev

將套件新增或升級為開發依賴項

-i,--interactive

重複使用專案中其他工作空間指定的套件

--cached

重複使用專案中某處已使用過的最高版本

--mode #0

變更安裝產生哪些人工製品