dart pub global
Global 是 pub 工具 的其中一個指令。
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
套件的可執行檔:
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。您可以傳遞多個這些標記。
例如,以下命令將 bar
和 baz
(但不包含 foo
可能定義的任何其他可執行檔) 新增至您的 PATH。
$ dart pub global activate foo -x bar -x baz
--overwrite
#使用 dart pub global activate <套件> --overwrite
來覆寫任何先前已啟用的同名全域可執行檔。如果您未指定此標記,則不會替換現有的可執行檔。
除非另有說明,否則本網站上的文件反映的是 Dart 3.7.1 版本。頁面最後更新於 2024-05-06。檢視原始碼 或 回報問題。