目錄

dart pub global

Globalpub 工具的其中一個命令。

當您目前不在套件內時,Pub 的 global 選項可讓您從命令列執行 Dart 指令碼。在啟用套件之後,您可以從該套件的 bin 目錄執行指令碼停用套件會將其從您全域可用的套件清單中移除。

例如,假設您想要使用 webdev 從命令列提供您的 Dart 網頁應用程式。

$ 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 目錄執行指令碼。

當您啟用套件時,您可以指定一個選擇性的版本限制。有關使用範例,請參閱限制標記。

在 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 儲存庫的預設分支。若要指定不同的分支或提交,請使用 --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 <路徑> 來啟用本機上的套件。以下範例從 ~/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 目錄是否在您的路徑中。以下 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
$ 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=<名稱>-x <名稱>

#

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

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

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

--overwrite

#

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