dart pub global
global は pubツール のコマンドの1つです。
Pubの global オプションを使用すると、パッケージ内にいない場合でも、コマンドラインからDartスクリプトを実行できます。 パッケージをアクティベート した後、そのパッケージの bin ディレクトリから スクリプトを実行 できます。 パッケージをディアクティベート すると、グローバルに利用可能なパッケージのリストから削除されます。
例えば、コマンドラインからDartウェブアプリケーションを提供するために webdev を使用したいとします。
dart pub global activate webdev
webdev serveこれでうまくいかない場合は、PATHを設定 する必要があるかもしれません。
パッケージ内から、またはパッケージが依存しているパッケージから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 markdownGitでパッケージをアクティベートする
#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.gitPubは、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 ディレクトリがPATHに含まれていることを確認してください。 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
weスクリプトがコマンドラインから実行されない場合は、パッケージがこの機能のために構成されていない可能性があります。 その場合でも、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ファイルは、helloworld パッケージの実行可能ファイルとして bin/helloworld.dart を識別します。
name: helloworld
executables:
helloworld:executables タグの下にスクリプトをリストしないと、スクリプトの使いやすさが低下します。 リストされていないスクリプトは dart pub global run を使用して実行できますが、コマンドラインから直接実行することはできません。
パッケージのディアクティベート
#dart pub global deactivate <package>deactivate を使用して、パッケージを利用可能なグローバルパッケージのリストから削除します。 例:
dart pub global deactivate markdowndart pub global run またはコマンドラインからパッケージのスクリプトを呼び出せなくなります。
アクティブなパッケージのリスト表示
#dart pub global listlist を使用して、現在アクティブなすべてのパッケージをリストします。
オプション
#すべての 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
#指定されたパッケージをグローバルにアクティベートしますが、bin に実行可能ファイルを配置しない場合は、dart pub global activate <パッケージ> --no-executables を使用します。 実行可能ファイルを実行するには、dart pub global run を使用する必要があります。
--executable=<名前> または -x <名前>
#dart pub global activate と一緒に使用して、指定された実行可能ファイルをPATHに追加します。 このフラグは複数指定できます。
例えば、次のコマンドは bar と baz をPATHに追加します (ただし、foo が定義する他の実行可能ファイルは追加しません)。
dart pub global activate foo -x bar -x baz--overwrite
#dart pub global activate <パッケージ> --overwrite を使用して、同じ名前の既存のグローバル実行可能ファイルを上書きします。 このフラグを指定しない場合、既存の実行可能ファイルは置き換えられません。