目次

dart pub 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はホストされている依存関係がある場合にオンラインにしようとします。そのため、pubは依存関係の新しいバージョンを検出できます。 pubにそれをさせたくない場合は、--offlineフラグを渡します。オフラインモードでは、pubはローカルパッケージキャッシュのみを検索し、既に利用可能なものからパッケージで動作するバージョンのセットを見つけようとします。

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

オプション

#

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

#

ロックを解除するパッケージのリストと共に使用する場合、最初にそれらのパッケージの依存関係の推移的クロージャ(現在の解決で)が計算され、次にそれらのすべてのパッケージのロックが解除されます。