跳至主要內容
版本:6.x

pnpm add <pkg>

安裝一個套件與其所有依賴的套件。 預設狀況下,新安裝的套件將被視為生產環境依賴套件安裝。

命令摘要

命令效果
pnpm add sax安裝該套件至 dependencies
pnpm add -D sax安裝該套件至 devDependencies
pnpm add -O sax安裝該套件至 optionalDependencies
pnpm add -g sax全域安裝該套件
pnpm add sax@next安裝標籤為 next 的套件
pnpm add sax@3.0.0安裝版本為 3.0.0 的套件

支援的套件位置

從 npm registry 安裝

pnpm add package-name 預設將從 npm registry 安裝最新版的 package-name 套件。

如果在工作區內執行此命令,此命令會先確認工作區中是否有其他專案也使用指定套件。 如果是,將會按已使用的版本範圍進行安裝。

您可以用下列方式安裝套件:

  • 指定標籤:pnpm add express@nightly
  • 指定版本:pnpm add express@1.0.0
  • 指定版本範圍:pnpm add express@2 react@">=0.1.0 <0.2.0"

從工作區安裝

請注意,當在工作區 workspace 新增依賴套件時,套件將會從已設置的來源進行安裝,這將取決於是否有配置 link-workspace-packages,並且是否有使用 workspace: range protocol

從本機檔案系統安裝

有兩種方式可讓您從本機的檔案系統進行安裝:

  1. 從 Tar 格式壓縮檔(.tar, .tar.gz.tgz
  2. 從一個資料夾

Examples:

pnpm add ./package.tar.gz
pnpm add ./some-directory

當您從資料夾進行安裝時,會在目前專案的 node_modules 資料夾下建立軟連結,所以結果和執行 pnpm link 命令的效果是一樣的。

從遠端伺服器的 Tar 壓縮檔安裝

此參數必須是一個以 "http://" 或 "https://" 開頭並且可以被擷取的連結。

例如:

pnpm add https://github.com/indexzero/forever/tarball/v0.5.6

從 Git 儲存庫安裝

pnpm add <git remote url>

使用 Git 從代管的 Git 平台上複製並安裝套件。 您可以用特殊格式來指定平台、帳號及儲存庫。 例如:pnpm add github:user/repo

您可以用下列方式自 Git 安裝:

  • master 分支的最新提交:pnpm add kevva/is-positive
  • 指定某一次提交:pnpm add kevva/is-positive#97edff6f525f192a3f83cea1944765f769ae2678
  • 指定分支:pnpm add kevva/is-positive#master
  • 指定版本範圍:pnpm add kevva/is-positive#semver:^2.0.0

Options

--save-prod, -P

安裝套件至 dependencies

--save-dev, -D

安裝套件至 devDependencies

--save-optional, -O

安裝套件至 optionalDependencies

--save-exact, -E

安裝套件並鎖定為指定版本,而不會使用 pnpm 預設的 semver 範圍

--save-peer

Added in: v3.2.0

Using --save-peer will add one or more packages to peerDependencies and install them as dev dependencies.

--ignore-workspace-root-check, -W

Added in: v3.6.0

Adding a new dependency to the root workspace package fails, unless the --ignore-workspace-root-check or -W flag is used.

For instance, pnpm add debug -W.

--global, -g

Install a package globally.

--workspace

Added in: v4.4.0

Only adds the new dependency if it is found in the workspace.

--filter <package_selector>

Read more about filtering.