dart pub global
global は pub ツール のコマンドの 1 つです。
Pub の global
オプションを使用すると、パッケージ内にいない場合でも、コマンドラインから Dart スクリプトを実行できます。パッケージをアクティブ化した後、そのパッケージの bin
ディレクトリからスクリプトを実行できます。パッケージを非アクティブ化すると、グローバルに利用可能なパッケージのリストから削除されます。
たとえば、コマンドラインから Dart Web アプリケーションを提供するために webdev を使用したいとします。
$ dart pub global activate webdev
$ webdev serve
これが機能しない場合は、パスを設定する必要があるかもしれません。
パッケージ内、またはパッケージが依存しているパッケージ内から Dart スクリプトを実行するには、dart run を参照してください。
パッケージのアクティブ化
#dart pub global activate [--noexecutables] [--executable=<name>] [--overwrite] <package> [version-constraint]
コマンドラインから 1 つ以上の実行可能ファイルを実行できるようにしたい場合は、パッケージをアクティブ化します。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>
Git リポジトリ内のパッケージをアクティブ化するには、--source git
(または短縮形の -sgit
) を使用します。次の例は、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 <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
スクリプトを実行し、2 つの引数を渡します。
$ 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
#指定したパッケージをグローバルにアクティブ化しますが、実行可能ファイルを bin
に入れないようにするには、dart pub global activate <package> --no-executables
を使用します。実行可能ファイルを実行するには、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
を使用します。このフラグを指定しない場合、既存の実行可能ファイルは置き換えられません。
特に明記されていない限り、このサイトのドキュメントは Dart 3.5.3 を反映しています。ページの最終更新日は 2024-05-06 です。 ソースを表示 または 問題を報告。