跳到主要内容

pnpm add <pkg>

安装软件包及其依赖的任何软件包。 默认情况下,任何新软件包都被安装为生产依赖项。

摘要:

命令含义
pnpm add sax保存到 dependencies
pnpm add -D sax保存到 devDependencies
pnpm add -O sax保存到 optionalDependencies
pnpm add -g sax安装全局依赖
pnpm add sax@nextnext 标签下安装
pnpm add sax@3.0.0安装指定版本 3.0.0

支持的包地址

从 npm 注册源安装

pnpm add package-name 默认会从 npm 注册源 安装最新的 package-name

如果在工作空间中执行,该命令将首先去检查这个工作空间中的其他项目是否已经使用了这个指定的包。 如果是,已经使用过的版本范围将被安装。

你还可以通过以下方式安装包:

  • 标签:pnpm add express@nightly
  • 版本:pnpm add express@1.0.0
  • 版本范围:pnpm add express@2 react@">=0.1.0 <0.2.0"

从工作空间安装

请注意,当添加依赖项并在 工作区内工作时,软件包 将从配置的源安装,具体取决于是否设置了 link-workspace-packages ,以及是否使用 workspace:range 指令

从本地文件系统安装

有两种方法可以从本地文件系统安装:

  1. 从 tarball 文件 (.tar.tar.gz.tgz)
  2. 从目录

示例:

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

当你从目录安装时,会在当前项目的 node_modules 目录中生成一个符号链接,因此这和执行 pnpm link 一致。

从远程 tarball 中安装

参数必须是一个可访问的 URL,以 "http://" 或 "https://" 开头。

示例:

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

从 Git 存储库安装

pnpm add <git remote url>

从托管的 Git 提供商安装软件包,并使用 Git 克隆它。

你可以通过以下方式从 Git 安装软件包:

  • 来自默认分支的最新提交:
pnpm add kevva/is-positive
  • Git 提交哈希:
pnpm add kevva/is-positive#97edff6f525f192a3f83cea1944765f769ae2678
  • Git 分支:
pnpm add kevva/is-positive#master
  • 相对于 refs 的 Git 分支:
pnpm add zkochan/is-negative#heads/canary
  • Git 标签:
pnpm add zkochan/is-negative#2.0.1
  • v 前缀的 Git 标签:
pnpm add andreineculau/npm-publish-git#v0.0.7

使用语义版本从 Git 存储库安装

你可以使用 semver: 参数指定要安装的版本(范围)。 示例:

  • 严格的语义版本:
pnpm add zkochan/is-negative#semver:1.0.0
  • v 前缀的语义版本范围:
pnpm add andreineculau/npm-publish-git#semver:v0.0.7
  • 语义版本范围:
pnpm add kevva/is-positive#semver:^2.0.0
  • v 前缀的语义版本范围:
pnpm add andreineculau/npm-publish-git#semver:<=v0.0.7

从 Git 存储库的子目录安装

你也可以使用 path: 参数从 Git 托管的 monorepo 中仅安装子目录。 例如:

pnpm add RexSkz/test-git-subdir-fetch#path:/packages/simple-react-app

通过完整 URL 从 Git 存储库安装

如果你想要更明确或使用其他 Git 托管,你可能需要拼出完整的 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

使用托管提供商简写从 Git 存储库安装

你可以使用协议简写 [provider]: 来表示某些 Git 提供商:

pnpm add github:zkochan/is-negative
pnpm add bitbucket:pnpmjs/git-resolver
pnpm add gitlab:pnpm/git-resolver

如果省略 [provider]: ,则默认为 github:

结合不同参数从 Git 存储库安装

可以使用 & 分隔来组合多个参数。 这对于 monorepo 的分叉是有用的:

pnpm add RexSkz/test-git-subdir-fetch.git#beta&path:/packages/simple-react-app

beta 分支安装,并仅安装 /packages/simple-react-app 子目录。

配置项

--save-prod, -P

将指定的软件包安装为常规的 dependencies

--save-dev, -D

将指定的软件包安装为 devDependencies

--save-optional, -O

将指定的软件包安装为 optionalDependencies

--save-exact, -E

已保存的依赖项将被配置确切版本,而不是使用 pnpm 的默认语义化版本范围运算符。

--save-peer

使用 --save-peer 将添加一个或多个软件包到 peerDependencies 并将它们作为开发依赖项安装。

--ignore-workspace-root-check

除非使用 --ignore-workspace-root-check-W 标记,否则在在工作空间根目录下添加依赖项时会失败。

例如,pnpm add debug -w

--global, -g

全局安装软件包。

--workspace

仅添加在工作空间中找到的依赖项。

--filter <package_selector>

阅读更多有关过滤的内容。