跳到主要内容

dart pub add

`add` 是 pub 工具的命令之一。

$ dart pub add [{dev|override}:]<package>[:descriptor] [[{dev|override}:]<package>[:descriptor] ...] [options]

此命令将指定的包添加为 `pubspec.yaml` 中的依赖项,然后检索依赖项以解析 `pubspec.yaml`。

以下示例命令等同于编辑 `pubspec.yaml` 添加 `http` 包,然后调用 `dart pub get`

dart pub add http

版本约束

#

默认情况下,`dart pub add` 使用来自 pub.dev 站点且与你的 SDK 约束和依赖项兼容的最新稳定版本包。例如,如果 `0.13.3` 是 `http` 包的最新稳定版本,则 `dart pub add http` 会在你的 `pubspec.yaml` 中的 `dependencies` 下添加 `http: ^0.13.3`。

你也可以指定一个约束或约束范围

dart pub add foo:2.0.0
dart pub add foo:'^2.0.0'
dart pub add foo:'>=2.0.0 <3.0.1'

如果指定的包是你的 `pubspec.yaml` 中已存在的依赖项,`dart pub add` 会将该依赖项的约束更新为命令中指定的约束。

开发依赖

#

`dev:` 前缀将包作为开发依赖项 (`dev dependency`) 添加,而不是普通依赖项。

dart pub add dev:foo           # adds newest compatible stable version of foo
dart pub add dev:foo:^2.0.0    # adds specified constraint of foo
dart pub add foo dev:bar       # adds regular dependency foo and dev dependency bar simultaneously

之前的 `-d, --dev` 选项:

dart pub add --dev foo

依赖覆盖

#

要指定依赖覆盖 (`dependency override`),添加 `override:` 前缀并包含一个版本约束源描述符

例如:要将所有对 `package:foo` 的引用覆盖为使用 `1.0.0` 版本的包,运行以下命令

dart pub add override:foo:1.0.0

这会将覆盖添加到你的 `pubspec.yaml` 文件

yaml
dependency_overrides:
  foo: 1.0.0

源描述符

#

YAML 描述符语法允许你添加来自不同源的多个包,并为每个包应用不同的选项和约束。

$ dart pub add [options] [{dev|override}:]<package>[:descriptor] [[{dev|override}:]<package>[:descriptor] ...]

该语法反映了依赖项在 `pubspec.yaml` 中的写法。请遵循相同的格式,包括空格。

"<package>:{<source>: <descriptor>[, <source>: <descriptor>], version: <constraint>}"

git

#

添加一个 git 依赖项

dart pub add "foo:{git: https://github.com/foo/foo}"

你可以指定仓库、分支或提交,或该仓库内的确切位置

dart pub add "foo:{git:{url: ../foo.git, ref: branch, path: subdir}}"

url

#

依赖于指定 Git 仓库中的包。

之前的 `--git-url=<git_repo_url>` 选项:

dart pub add http --git-url=https://github.com/my/http.git

ref

#

配合 `url`,依赖于指定 Git 仓库的分支或提交。

之前的 `--git-ref=<branch_or_commit>` 选项:

dart pub add http --git-url=https://github.com/my/http.git --git-ref=tmpfixes

path

#

配合 `url`,指定包在 Git 仓库中的位置。

之前的 `--git-path=<directory_path>` 选项.

hosted

#

添加一个 hosted 依赖项,依赖于指定 URL 处的包服务器。

dart pub add "foo:{hosted: my-pub.dev}"

之前的 `--hosted-url=<package_server_url>` 选项.

path

#

添加一个 path 依赖项,依赖于本地存储的包。

dart pub add "foo:{path: ../foo}"

之前的 `--path=<directory_path>` 选项.

sdk

#

添加一个来自指定 SDK 源的包。

dart pub add "foo:{sdk: flutter}"

之前的 `--sdk=<sdk_name>` 选项:

dart pub add foo --sdk=flutter

选项

#

适用于所有 `pub` 命令的选项,请参阅全局选项

--[no-]offline

#

默认情况下,`pub` 会连接网络检索 hosted 包(`--no-offline`)。要改用缓存的包,请使用 `--offline`。详情请参阅离线获取

-n, --dry-run

#

报告哪些依赖项会改变,但不实际进行更改。

--[no-]precompile

#

默认情况下,`pub` 会预编译直接依赖项中的可执行文件(`--precompile`)。要阻止预编译,请使用 `--no-precompile`。

在工作空间中

#

Pub 工作空间中,`dart pub add` 只会向当前目录中的包添加依赖项。