dart pub get
Get は、pubツールのコマンドの1つです。
$ dart pub get [options]
このコマンドは、現在の作業ディレクトリのpubspec.yaml
ファイルにリストされているすべての依存関係とその推移的依存関係を取得します。例:
$ dart pub get
Resolving dependencies...
Got dependencies!
システムキャッシュに依存関係が含まれていない場合、dart pub get
はキャッシュを更新し、必要に応じて依存関係をダウンロードします。パッケージをシステムキャッシュにマッピングするために、このコマンドは.dart_tool/
ディレクトリにpackage_config.json
ファイルを作成します。
依存関係が取得されると、Dartコードで参照できるようになります。たとえば、パッケージがtest
に依存している場合:
import 'package:test/test.dart';
dart pub get
が新しい依存関係を取得すると、将来の取得で同じバージョンの依存関係を使用するように、lockfileを書き込みます。アプリケーションパッケージはlockfileをソースコントロールにチェックインする必要があります。これにより、アプリケーションはすべての開発者および本番環境へのデプロイ時に、すべての依存関係のまったく同じバージョンを使用することが保証されます。ただし、通常のパッケージは、さまざまな依存関係のバージョンで動作することが期待されるため、lockfileをチェックインするべきではありません。
lockfileが既に存在する場合、dart pub get
は可能な限り、そのlockfileにロックされている依存関係のバージョンを使用します。依存関係がロックされていない場合、pubはすべてのバージョン制約を満たす、その依存関係の最新バージョンを取得します。これは、dart pub get
とdart pub upgrade
の主な違いです。dart pub upgrade
は常にすべての依存関係の最新バージョンを取得しようとします。
パッケージ解決
#デフォルトでは、pubはパッケージ名と場所URIをマッピングするpackage_config.json
ファイルを.dart_tool/
ディレクトリに作成します。
新しい依存関係の取得
#依存関係がpubspecに追加され、dart pub get
が実行されると、新しい依存関係とその推移的依存関係が取得されます。ただし、新しい依存関係を取得するために必要な場合を除き、pubは既に取得済みの依存関係のバージョンを変更しません。
依存関係の削除
#依存関係がpubspecから削除され、dart pub get
が実行されると、その依存関係はインポートできなくなります。削除された依存関係の推移的依存関係も、残りの直接的な依存関係がそれらに依存していない限り、削除されます。依存関係の削除によって、既に取得済みの依存関係のバージョンが変更されることはありません。
システムパッケージキャッシュ
#Gitやpub.devサイトなど、インターネット経由でダウンロードされた依存関係は、システム全体のキャッシュに保存されます。つまり、複数のパッケージが同じバージョンの同じ依存関係を使用する場合、ローカルにダウンロードして保存する必要があるのは一度だけです。
デフォルトでは、システムパッケージキャッシュはホームディレクトリの.pub-cache
サブディレクトリ(macOSとLinux)または%LOCALAPPDATA%\Pub\Cache
(Windows。Windowsのバージョンによって場所は異なる場合があります)にあります。pubを実行する前にPUB_CACHE
環境変数を設定して、キャッシュの場所を設定できます。
オフラインでの取得
#ネットワークアクセスがない場合でも、dart pub get
を実行できます。pubはパッケージをシステム上のすべてのパッケージで共有される中央キャッシュにダウンロードするため、ネットワークを使用せずに、既にダウンロードされたパッケージを見つけることができることがよくあります。
ただし、デフォルトでは、ホストされている依存関係がある場合、dart pub get
はオンラインに接続しようとします。これにより、pubは依存関係の新しいバージョンを検出できます。pubにそれを行わせたくない場合は、--offline
フラグを渡します。オフラインモードでは、pubはローカルパッケージキャッシュのみを調べ、既に利用可能なものからパッケージと連携するバージョンのセットを見つけようとします。
pubはlockfileを生成することに注意してください。キャッシュ内の依存関係の唯一のバージョンが古い場合、オフラインのdart pub get
はその古いバージョンにアプリをロックします。次にオンラインになったときには、dart pub upgrade
を実行して、新しいバージョンにアップグレードする必要があります。
オプション
#すべてのパブコマンドに適用されるオプションについては、グローバルオプションを参照してください。
--[no-]offline
#デフォルトでは、pubはネットワークに接続してホストされているパッケージを取得します(--no-offline
)。代わりにキャッシュされたパッケージを使用するには、--offline
を使用します。詳細については、オフラインでの取得を参照してください。
--dry-run
または-n
#変更される依存関係を報告しますが、変更は行いません。これは、変更を加える前に更新を分析する場合に役立ちます。
--[no-]precompile
#デフォルトでは、pubは直接的な依存関係内の実行可能ファイルを事前にコンパイルします(--precompile
)。プリコンパイルを防止するには、--no-precompile
を使用します。
--enforce-lockfile
#現在のpubspec.lock
の解決を強制します。
pubspec.lock
がpubspec.yaml
の有効な解決を正確に指定していない場合、またはホストされているパッケージのコンテンツハッシュが変更されている場合、エラーメッセージでpub get
を失敗させます。
CIや本番環境へのデプロイに役立ちます。
本番環境用の依存関係を取得するの詳細については、こちらを参照してください。
特に明記されていない限り、このサイトのドキュメントはDart 3.5.3を反映しています。ページは2024年11月7日に最後に更新されました。 ソースを表示 または 問題を報告する。