dart pub global
Global 是 pub 工具 的命令之一。
Pub 的 global 選項允許您在當前不在包內時從命令列執行 Dart 指令碼。在啟用包後,您可以從該包的 bin 目錄執行指令碼。停用包會將其從全域性可用包列表中移除。
例如,假設您想使用 webdev 從命令列服務您的 Dart Web 應用。
dart pub global activate webdev
webdev serve如果這不起作用,您可能需要設定您的 PATH。
要在包內或從您的包所依賴的包中執行 Dart 指令碼,請參閱 dart run。
啟用包
#dart pub global activate [--noexecutables] [--executable=<name>] [--overwrite] <package> [version-constraint]當您希望能夠從命令列執行一個或多個包的可執行檔案時,請啟用該包。您可以啟用位於 pub.dev 網站、Git 倉庫或您本地機器上的包。啟用包後,請參閱執行指令碼,以執行該包的 bin 目錄中的指令碼。
啟用包時,您可以指定可選的版本約束。請參閱約束標誌以獲取使用示例。
在 pub.dev 網站上啟用包
#dart pub global activate <pub.dev package>指定 pub.dev 網站上的包來啟用它。例如
dart pub global activate markdown使用 Git 啟用包
#dart pub global activate --source git <Git URL>
dart pub global activate -sgit <Git URL>使用 --source git (或簡寫 -sgit) 來啟用 Git 倉庫中的包。以下啟用 GitHub 上的 async_await 包的示例是等效的
dart pub global activate --source git https://github.com/dart-lang/async_await.git
dart pub global activate -sgit https://github.com/dart-lang/async_await.gitPub 期望在 Git 倉庫的根目錄中找到包。要指定不同的位置,請使用 --git-path 選項,並提供相對於倉庫根目錄的路徑
dart pub global activate -sgit https://github.com/dart-lang/http.git --git-path pkgs/http/Pub 使用 Git 倉庫的預設分支。要指定不同的分支或提交,請使用 --git-ref 選項
dart pub global activate -sgit https://github.com/dart-lang/http.git --git-ref 36f98e900347335af2338a0e087538009b7de2f9在本地機器上啟用包
#dart pub global activate --source path <path>使用 activate --source path <path> 來啟用您本地機器上的包。以下示例啟用 ~/dart 目錄中的 stopwatch 包
dart pub global activate --source path ~/dart/stopwatch更新已啟用的包
#包啟用後,可以透過再次啟用包來升級它。
執行指令碼
#您可以直接從命令列執行已啟用包中的指令碼。如果無法直接執行指令碼,您也可以使用 dart pub global run。
從 PATH 執行指令碼
#要直接從命令列執行指令碼,請將系統快取的 bin 目錄新增到您的 PATH 環境變數中。
例如,假設您已經激活了 webdev 包,但仍然無法執行該命令
dart pub global activate webdev
webdev serve
-bash: webdev: command not found驗證系統快取的 bin 目錄是否在您的 PATH 中。macOS 上的以下 PATH 變數包含系統快取
echo $PATH
/Users/<user>/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/Users/<user>/.pub-cache/bin如果此目錄在您的 PATH 中缺失,請找到適用於您平臺的檔案並新增它。
| 平臺 | 快取位置 |
|---|---|
| macOS 或 Linux | $HOME/.pub-cache/bin |
| Windows* | %LOCALAPPDATA%\Pub\Cache\bin |
* 系統快取的確切位置可能因 Windows 版本而異。
現在您可以直接呼叫命令
cd web_project
we如果指令碼仍然無法從命令列執行,則該包可能未配置此功能。您仍然可以使用 dart pub global run 執行指令碼。
使用 dart pub global run 執行指令碼
#$ dart pub global run <package>:<executable> [args...]即使指令碼未配置為從命令列執行,您仍然可以使用 dart pub global run。以下命令執行 foo 包中的 bin/bar.dart 指令碼,並傳入兩個引數。
dart pub global run foo:bar arg1 arg2配置包可執行檔案
#如果您不是包開發者,可以跳過本節。
包可以將其部分指令碼公開為可直接從命令列執行的可執行檔案。指令碼必須列在 pubspec 檔案中的 executables 條目下。例如,以下 pubspec 檔案將 bin/helloworld.dart 標識為 helloworld 包的可執行檔案
name: helloworld
executables:
helloworld:未能將指令碼列在 executables 標籤下會降低指令碼的可用性:未列出的指令碼可以使用 dart pub global run 執行,但不能直接從命令列執行。
停用包
#dart pub global deactivate <package>使用 deactivate 從可用全域性包列表中移除包。例如
dart pub global deactivate markdown您不能再使用 dart pub global run 或在命令列上呼叫該包的指令碼了。
列出活動包
#dart pub global list使用 list 列出所有當前活動的包。
選項
#對於適用於所有 pub 命令的選項,請參閱全域性選項。
[版本約束]
#使用 dart pub global activate <package> [version-constraint] 指定包的特定版本。例如,以下命令拉取 markdown 包的 0.6.0 版本
dart pub global activate markdown 0.6.0如果您指定一個範圍,pub 會選擇符合該約束條件的最佳版本。例如
dart pub global activate foo <3.0.0--no-executables
#使用 dart pub global activate <package> --no-executables 來全域性啟用指定包,但不將任何可執行檔案放入 bin。您必須使用 dart pub global run 來執行任何可執行檔案。
--executable=<name> 或 -x <name>
#與 dart pub global activate 一起使用,將指定的可執行檔案新增到您的 PATH 中。您可以傳遞多個此類標誌。
例如,以下命令將 bar 和 baz(但不包含 foo 可能定義的任何其他可執行檔案)新增到您的 PATH 中。
dart pub global activate foo -x bar -x baz--overwrite
#使用 dart pub global activate <package> --overwrite 覆蓋任何先前啟用的同名全域性可執行檔案。如果您未指定此標誌,則不會替換現有的可執行檔案。