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
。
從本機檔案系統安裝
有兩種方式可讓您從本機的檔案系統進行安裝:
- 從 Tar 格式壓縮檔(
.tar
,.tar.gz
或.tgz
) - 從一個資料夾
範例:
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>
Installs the package from the hosted Git provider, cloning it with Git.
You may install packages from Git by:
- Latest commit from default branch:
pnpm add kevva/is-positive
- Git commit hash:
pnpm add kevva/is-positive#97edff6f525f192a3f83cea1944765f769ae2678
- Git branch:
pnpm add kevva/is-positive#master
- Git branch relative to refs:
pnpm add zkochan/is-negative#heads/canary
- Git tag:
pnpm add zkochan/is-negative#2.0.1
- V-prefixed Git tag:
pnpm add andreineculau/npm-publish-git#v0.0.7
- Version range:
pnpm add kevva/is-positive#semver:^2.0.0
Semver
You can specify version (range) to install using the semver:
parameter. 範例:
- Strict semver:
pnpm add zkochan/is-negative#semver:1.0.0
- V-prefixed strict semver:
pnpm add andreineculau/npm-publish-git#semver:v0.0.7
- Semver version range:
pnpm add kevva/is-positive#semver:^2.0.0
- V-prefixed semver version range:
pnpm add andreineculau/npm-publish-git#semver:<=v0.0.7
Subdirectory
You may also install just a subdirectory from a Git-hosted monorepo using the path:
parameter. 例如:
pnpm add RexSkz/test-git-subfolder-fetch#path:/packages/simple-react-app
Full URL
If you want to be more explicit or are using alternative Git hosting, you might want to spell out full Git URL:
# git+ssh
pnpm add git+ssh://git@github.com:zkochan/is-negative.git#2.0.1
# https
pnpm add https://github.com/zkochan/is-negative.git#2.0.1
Providers shorthand
You can use a protocol shorthand [provier]:
for certain Git providers:
pnpm add github:zkochan/is-negative
pnpm add bitbucket:pnpmjs/git-resolver
pnpm add gitlab:pnpm/git-resolver
If [provider]:
is omited, it defaults to github:
.
Parameters combination
It is possible to combine multiple parameters by separating them with &
. This can be useful for forks of monorepos:
# Install git branch `beta`
# Install only subfolder `/packages/simple-react-app`
pnpm add RexSkz/test-git-subfolder-fetch.git#beta&path:/packages/simple-react-app
參數
--save-prod, -P
安裝套件至 dependencies
--save-dev, -D
安裝套件至 devDependencies
--save-optional, -O
安裝套件至 optionalDependencies
--save-exact, -E
安裝套件並鎖定為指定版本,而不會使用 pnpm 預設的 semver 範圍
--save-peer
使用 --save-peer
將會新增一個或多個套件至 peerDependencies
並且將它們當作開發依賴套件進行安裝。
--ignore-workspace-root-check
除非加上 --ignore-workspace-root-check
或 -w
參數,否則在工作區的根目錄中新增依賴套件時將會失敗。
例如:pnpm add debug -w
。
--global, -g
在全域空間安裝該套件
--workspace
僅新增可在工作區找到的新套件。