dart pub upgrade
Upgrade は pub ツールのコマンドの1つです。
$ dart pub upgrade [options] [dependencies]dart pub get と同様に、dart pub upgrade も依存関係を取得します。違いは、dart pub upgrade は既存のロックファイルを無視するため、pub はすべての依存関係の最新バージョンを取得できることです。関連するコマンドはdart pub outdatedで、古い依存関係を見つけるために実行できます。
追加の引数なしで、dart pub upgrade は現在の作業ディレクトリにあるpubspec.yamlファイルにリストされているすべての依存関係の最新バージョンと、それらの推移的な依存関係を取得します。例:
dart pub upgrade
Dependencies upgraded!dart pub upgrade が依存関係のバージョンをアップグレードすると、ロックファイルが書き込まれ、dart pub get がそれらの依存関係の同じバージョンを使用することを保証します。 アプリケーションパッケージの場合は、ロックファイルをソース管理にチェックインしてください。これにより、すべての開発者と本番環境にデプロイされたときに、アプリケーションがすべての依存関係のまったく同じバージョンを持つことが保証されます。通常のパッケージの場合は、ロックファイルをチェックインしないでください。パッケージはさまざまなバージョンの依存関係で動作することが期待されるためです。
ロックファイルが既に存在する場合、dart pub upgrade はそれを無視し、すべての依存関係の最新バージョンを使用して、最初から新しいロックファイルを生成します。
パッケージの解決とシステムパッケージキャッシュの詳細については、dart pub get のドキュメントを参照してください。
特定の依存関係のアップグレード
#dart pub upgrade に、他の依存関係をできるだけそのままにして、特定の依存関係のみを最新バージョンにアップグレードするように指示できます。例:
dart pub upgrade test args
Dependencies upgraded!通常、他の依存関係はアップグレードされません。ロックファイルにロックされているバージョンにとどまります。ただし、要求されたアップグレードがこれらのロックされたバージョンとの互換性の問題を引き起こす場合、互換性のあるバージョンのセットが見つかるまで選択的にロック解除されます。
これは、特定の依存関係をアップグレードしても、デフォルトではその推移的な依存関係はアップグレードされないことを意味します。
特定の依存関係とそのすべての推移的な依存関係を最新バージョンにアップグレードするには、--unlock-transitive フラグを使用します。
dart pub upgrade --unlock-transitive test args新しい依存関係の取得
#dart pub upgrade を実行する前に依存関係が pubspec に追加された場合、新しい依存関係とその推移的な依存関係が取得されます。これは dart pub get と同じ動作です。
依存関係の削除
#dart pub upgrade を実行する前に依存関係が pubspec から削除された場合、その依存関係はインポートできなくなります。削除された依存関係の推移的な依存関係も削除されます。ただし、残りの直接的な依存関係がそれらに依存していない場合に限ります。これは dart pub get と同じ動作です。
オフラインでのアップグレード
#ネットワークにアクセスできない場合でも、dart pub upgrade を実行できます。pub はパッケージをシステム上のすべてのパッケージで共有される中央キャッシュにダウンロードするため、ネットワークを使用せずに以前にダウンロードしたパッケージを見つけることができることがよくあります。
ただし、デフォルトでは、dart pub upgrade はホストされた依存関係がある場合、オンラインに接続しようとします(--no-offline)。 pub がそれをしたくない場合は、--offline フラグを渡します。オフラインモードでは、pub はローカルパッケージキャッシュのみを検索し、利用可能なものからパッケージと連携するバージョンのセットを見つけようとします。
pub はロックファイルを生成することを忘れないでください。キャッシュ内の依存関係の唯一のバージョンが古い場合、オフラインの dart pub upgrade はその古いバージョンにアプリをロックします。次回オンラインになったときに、dart pub upgrade を再度実行して、 later バージョンにアップグレードしたくなるでしょう。
オプション
#dart pub upgrade コマンドは、dart pub get のオプションなどをサポートしています。すべての pub コマンドに適用されるオプションについては、グローバルオプションを参照してください。
--[no-]offline
#デフォルトでは、pub はホストされたパッケージを取得するためにネットワークに接続します(--no-offline)。代わりにキャッシュされたパッケージを使用するには、--offline を使用します。詳細については、オフラインでの取得を参照してください。
--dry-run または -n
#変更される依存関係を報告しますが、実際には変更しません。これは、変更を行う前に更新を分析したい場合に便利です。
--[no-]precompile
#デフォルトでは、pub は直接的な依存関係の実行可能ファイルをプリコンパイルします(--precompile)。プリコンパイルを防ぐには、--no-precompile を使用します。
--major-versions
#dart pub outdated が解決可能としてリストしているパッケージを取得し、pubspec.yaml ファイルの上限制約を無視します。また、pubspec.yaml を新しい制約で更新します。
どの依存関係がアップグレードされるかを確認するには、dart pub upgrade --major-versions --dry-run を使用できます。
--tighten
#pubspec.yaml ファイルの依存関係の下限制約を解決されたバージョンに合わせて更新し、変更された制約のリストを返します。特定の依存関係に適用できます。
--unlock-transitive
#ロック解除するパッケージのリストとともに使用すると、まずそれらのパッケージの依存関係の推移的閉包(現在の解決において)が計算され、次にそれらすべてのパッケージがロック解除されます。
ワークスペース内
#Pubワークスペースでは、dart pub upgrade はワークスペース内のすべてのパッケージにわたる共有解決におけるすべての依存関係をアップグレードします。
dart pub upgrade --major-versions および dart pub upgrade --tighten は、すべてのワークスペース pubspec.yaml ファイルの制約を更新します。