目次

dart pub global

globalpub ツール のコマンドの 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 パッケージの実行可能ファイルとして識別します。

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 <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 に追加します。これらのフラグを複数渡すことができます。

たとえば、次のコマンドは、barbaz (および foo が定義する可能性のある他の実行可能ファイルではない) を PATH に追加します。

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

--overwrite

#

以前にアクティブ化された同じ名前のグローバル実行可能ファイルを上書きするには、dart pub global activate <package> --overwrite を使用します。このフラグを指定しない場合、既存の実行可能ファイルは置き換えられません。