メインコンテンツにスキップ

dart pub get

Getpub ツールのコマンドの1つです。

$ dart pub get [options]

このコマンドは、現在の作業ディレクトリにある pubspec.yaml ファイルにリストされているすべての依存関係と、それらの 推移的依存関係 を取得します。例として

dart pub get
Resolving dependencies...
Got dependencies!

dart pub get は、システムキャッシュに依存関係がまだ含まれていない場合、キャッシュを更新し、必要に応じて依存関係をダウンロードします。パッケージをシステムキャッシュにマッピングするために、このコマンドは .dart_tool/ ディレクトリに package_config.json ファイルを作成します。

依存関係が取得されると、Dart コードで参照できるようになります。たとえば、パッケージが test に依存している場合

dart
import 'package:test/test.dart';

dart pub get が新しい依存関係を取得すると、将来の取得でそれらの依存関係の同じバージョンが使用されることを保証するために ロックファイルを書き込みます。アプリケーションパッケージは、ソース管理にロックファイルをチェックインする必要があります。これにより、すべての開発者および本番環境へのデプロイ時に、アプリケーションがすべての依存関係のまったく同じバージョンを使用することが保証されます。ただし、通常のパッケージは、さまざまなバージョンの依存関係で動作することが期待されているため、ロックファイルをチェックインすべきではありません。

ロックファイルが既に存在する場合、dart pub get は可能な限り、その中にロックされている依存関係のバージョンを使用します。依存関係がロックされていない場合、pub は、すべての バージョン制約を満たすその依存関係の最新バージョンを取得します。これは、dart pub getdart pub upgrade の主な違いです。dart pub upgrade は常にすべての依存関係の最新バージョンを取得しようとします。

パッケージの解決

#

デフォルトでは、pub は .dart_tool/ ディレクトリにパッケージ名からロケーションURIへのマッピングを行う package_config.json ファイルを作成します。

新しい依存関係の取得

#

依存関係が pubspec に追加され、その後 dart pub get が実行されると、新しい依存関係とその推移的依存関係が取得されます。ただし、新しい依存関係を取得するために必要な場合を除き、pub は既に取得された依存関係のバージョンを変更しません。

依存関係の削除

#

依存関係が pubspec から削除され、その後 dart pub get が実行されると、その依存関係はインポートできなくなります。削除された依存関係の推移的依存関係も削除されます。ただし、残りの直接依存関係がそれらに依存していない場合に限ります。依存関係を削除しても、既に取得された依存関係のバージョンが変更されることはありません。

システムのパッケージキャッシュ

#

インターネット経由でダウンロードされた依存関係(Git や pub.dev サイトからなど)は、システム全体で共有されるキャッシュに保存されます。これは、複数のパッケージが同じ依存関係の同じバージョンを使用する場合、ローカルに1回だけダウンロードして保存すればよいことを意味します。

デフォルトでは、システムのパッケージキャッシュは、ホームディレクトリの .pub-cache サブディレクトリ(macOS および Linux の場合)または %LOCALAPPDATA%\Pub\Cache(Windows の場合。場所は Windows のバージョンによって異なる場合があります)にあります。pub を実行する前に PUB_CACHE 環境変数を設定することで、キャッシュの場所を設定できます。

オフラインでの取得

#

ネットワークにアクセスできない場合でも、dart pub get を実行できます。pub はパッケージをシステム上のすべてのパッケージで共有される中央キャッシュにダウンロードするため、ネットワークを使用せずに以前にダウンロードしたパッケージを見つけることができることがよくあります。

ただし、デフォルトでは、dart pub get はホストされている依存関係がある場合にオンラインになろうとします。これにより、pub は依存関係の新しいバージョンを検出できます。pub にそうさせたくない場合は、--offline フラグを渡してください。オフラインモードでは、pub はローカルパッケージキャッシュのみを検索し、既に利用可能なものからパッケージと互換性のあるバージョンのセットを見つけようとします。

pub がロックファイルを生成することを覚えておいてください。キャッシュ内の依存関係の唯一のバージョンが古い場合、オフラインの dart pub get はその古いバージョンにアプリをロックします。次にオンラインになったときに、おそらく dart pub upgrade を実行して、より新しいバージョンにアップグレードしたくなるでしょう。

オプション

#

すべての pub コマンドに適用されるオプションについては、グローバルオプション を参照してください。

--[no-]offline

#

デフォルトでは、pub はホストされたパッケージを取得するためにネットワークに接続します(--no-offline)。代わりにキャッシュされたパッケージを使用するには、--offline を使用します。詳細については、オフラインでの取得を参照してください。

--dry-run または -n

#

変更される依存関係を報告しますが、変更は行いません。これは、変更を加える前に更新を分析したい場合に便利です。

--[no-]precompile

#

デフォルトでは、pub は直接的な依存関係の実行可能ファイルをプリコンパイルします(--precompile)。プリコンパイルを防ぐには、--no-precompile を使用します。

--enforce-lockfile

#

現在の pubspec.lock の解決を強制します。

pubspec.lockpubspec.yaml の有効な解決を正確に指定していない場合、またはホストされたパッケージのコンテンツハッシュが変更された場合は、pub get をエラーメッセージで失敗させます。

CI または本番環境へのデプロイに便利です。

詳細については、本番環境用の依存関係を取得する を参照してください。