跳到主要內容

dart pub global

Globalpub 工具 的其中一個指令。

Pub 的 global 選項讓您在未處於套件中時,可以從命令列執行 Dart 腳本。在啟用套件後,您可以從該套件的 bin 目錄執行腳本停用套件會將其從您的全域可用套件列表中移除。

例如,假設您想要使用 webdev 從命令列伺服您的 Dart Web 應用程式。

$ dart pub global activate webdev
$ webdev serve

如果這不起作用,您可能需要設定您的路徑

若要從套件內,或從您的套件相依的套件執行 Dart 腳本,請參閱 dart run

啟用套件

#
dart pub global activate [--noexecutables] [--executable=<name>] [--overwrite] <package> [version-constraint]

當您想要能夠從命令列執行套件的一個或多個可執行檔時,請啟用套件。您可以啟用位於 pub.dev 網站、Git 儲存庫或本機上的套件。一旦您啟用了套件,請參閱執行腳本以執行套件 bin 目錄中的腳本。

當您啟用套件時,您可以指定一個可選的版本約束。請參閱 constraint 標記以取得使用範例。

在 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.git

Pub 預期在 Git 儲存庫的根目錄中找到套件。若要指定不同的位置,請使用 --git-path 選項,並指定相對於儲存庫根目錄的路徑:

$ dart pub global activate -sgit https://github.com/dart-lang/http.git --git-path pkgs/http/

Pub 使用 Git 儲存庫的預設分支。若要指定不同的分支或 commit,請使用 --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 上) 包含系統快取:

$ 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
$ webdev serve

如果腳本仍然無法從命令列執行,則該套件可能未設定此功能。您仍然可以使用 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 套件的可執行檔:

yaml
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 <套件> [版本約束] 來指定套件的特定版本。例如,以下命令提取 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 <套件> --no-executables 來全域啟用指定的套件,但不將任何可執行檔放入 bin 中。您必須使用 dart pub global run 來執行任何可執行檔。

--executable=<name>-x <name>

#

dart pub global activate 一起使用,將指定的可執行檔新增至您的 PATH。您可以傳遞多個這些標記。

例如,以下命令將 barbaz (但不包含 foo 可能定義的任何其他可執行檔) 新增至您的 PATH。

$ dart pub global activate foo -x bar -x baz

--overwrite

#

使用 dart pub global activate <套件> --overwrite 來覆寫任何先前已啟用的同名全域可執行檔。如果您未指定此標記,則不會替換現有的可執行檔。