跳到主要內容

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` 只會向當前目錄中的包新增依賴項。