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` 檔案
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.gitref
#配合 `url`,依賴於指定 Git 倉庫的分支或提交。
之前的 `--git-ref=<branch_or_commit>` 選項:
dart pub add http --git-url=https://github.com/my/http.git --git-ref=tmpfixespath
#配合 `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` 只會向當前目錄中的包新增依賴項。