dart pub outdated
Outdated は、pubツールのコマンドの1つです。
$ dart pub outdated [options]
dart pub outdated
を使用して、古いパッケージの依存関係を特定し、更新方法に関するアドバイスを取得します。 依存関係管理のベストプラクティスには、最新の安定版パッケージバージョンを使用することが含まれているため、最新の 버그 수정 と改善 प्राप्त कर सकते हैं.
概要
#dart pub outdated
を使用して、所有しているパッケージ(アプリか通常のパッケージかにかかわらず)の依存関係を更新する方法を説明します。
- パッケージにソース管理にチェックインされた
pubspec.lock
ファイルがない場合は、パッケージの最上位ディレクトリ(パッケージのpubspec.yaml
ファイルを含むディレクトリ)でdart pub get
を実行します。 dart pub outdated
を実行して、どのパッケージの依存関係が古くなっているかを特定します。影響を受けるパッケージをメモしておいて、後でそれらを使用するコードの動作をテストできるようにします。- パッケージを更新するには、
dart pub outdated
の推奨事項に従います。一部の更新では、dart pub upgrade
を実行するだけで済みます。その他の場合は、dart pub upgrade
を実行する前にpubspec.yaml
を更新する必要があります。 dart pub outdated
を実行して、最新互換パッケージバージョンを使用していることを確認します。- パッケージをテストして、期待どおりに動作することを確認します。
推移的な依存関係が原因で、古い依存関係がまだ残っている可能性があります。原因を特定するには、dart pub deps
を実行し、出力で古いパッケージの名前を検索してみてください。
例
#これは、古い依存関係がいくつかある例でdart pub outdated
を実行した例です。依存関係のうち3つ(args
、http
、path
)は直接的で、1つは推移的です(meta
)。次の例に示すように、dart pub outdated
は、コマンドラインで実行すると、デフォルトで出力を色分けします。
$ dart pub outdated Package Name Current Upgradable Resolvable Latest direct dependencies: args 1.4.4 1.6.0 1.6.0 1.6.0 http 0.11.3+17 0.11.3+17 0.12.1 0.12.1 path 1.6.2 1.6.2 1.6.2 1.7.0 dev_dependencies: all up-to-date transitive dependencies: meta 1.1.6 1.1.6 1.1.6 1.1.8 transitive dev_dependencies: all up-to-date 1 upgradable dependency is locked (in pubspec.lock) to an older version. To update it, use `dart pub upgrade`. 1 dependency is constrained to a version that is older than a resolvable version. To update it, edit pubspec.yaml.
解決可能カラムには、古い依存関係ごとにアップグレードできるバージョンが表示されます。赤くない値の最も左側のカラムを探すことで、詳細情報を得ることができます。たとえば、args
は1.6.0にアップグレード可能で、http
は0.12.1に解決可能です。 path
とmeta
パッケージは最新バージョンではありませんが、他のすべての依存関係を考慮すると、最新の解決可能バージョンです。
アップグレード可能としてリストされている最初の依存関係(args
)を修正するには、dart pub upgrade
を実行するだけです。
$ dart pub upgrade
Resolving dependencies...
> args 1.6.0 (was 1.4.4)
...
Changed 1 dependency!
解決可能としてリストされている2番目の依存関係(http
)を修正するには、pubspecのhttp
エントリを解決可能カラムのバージョン(または互換性のある上位バージョン)を使用するように変更できます。 キャレット構文では、これは^0.12.1
です。 pubspec.yaml
の差分は次のとおりです。
- http: ^0.11.0
+ http: ^0.12.1
pubspec.yaml
を編集した後、dart pub upgrade
を実行してpubspec.lock
ファイルを更新します。その後、dart pub outdated
を実行して、必要な変更がすべて行われたことを確認できます。この例では、他の依存関係によって決定された制約により、path
とmeta
パッケージはまだ古くなっています。
$ dart pub upgrade
...
$ dart pub outdated
Package Name Current Upgradable Resolvable Latest
direct dependencies:
path 1.6.2 1.6.2 1.6.2 1.7.0
dev_dependencies: all up-to-date
transitive dependencies:
meta 1.1.6 1.1.6 1.1.6 1.1.8
transitive dev_dependencies: all up-to-date
Dependencies are all on the latest resolvable versions.
Newer versions, while available, are not mutually compatible.
これらのパッケージが古くなっている理由を確認するには、dart pub deps
を実行し、これらのパッケージへの依存関係を探します。
$ dart pub deps -s list
...
dependencies:
...
- terminal_tools 0.1.0
- path 1.6.2
- meta 1.1.6
...
上記の出力に示すように、このパッケージはterminal_tools
パッケージに依存しており、これは古いバージョンのpath
とmeta
に依存しています。 terminal_tools
パッケージが更新されると、このパッケージを更新できるようになります。
出力カラム
#dart pub outdated
の出力には、古い依存関係ごとに4つのバージョンの情報カラムがあります。 例出力の一部を次に示します。これは、4つのバージョンカラム(現在、アップグレード可能、解決可能、最新)を示しています。
Package Name Current Upgradable Resolvable Latest direct dependencies: args 1.4.4 1.6.0 1.6.0 1.6.0 http 0.11.3+17 0.11.3+17 0.12.1 0.12.1 path 1.6.2 1.6.2 1.6.2 1.7.0 dev_dependencies: all up-to-date transitive dependencies: meta 1.1.6 1.1.6 1.1.6 1.1.8
- 現在
pubspec.lock
に記録されている、パッケージで使用されているバージョン。パッケージがpubspec.lock
にない場合、値は-
です。- アップグレード可能
pubspec.yaml
ファイルで許可されている最新バージョン。これは、dart pub upgrade
が解決するバージョンです。 現在カラムの値が-
の場合、値は-
です。- 解決可能
- 他のすべての依存関係と組み合わせたときに解決できる最新バージョン。このバージョンは、
pubspec.yaml
のすべてのバージョン制約が無制限の場合にdart pub upgrade
が提供するバージョンに対応します。値が-
の場合、パッケージは不要になります。 - 最新
- オプション
--prereleases
を使用しない限り、プレリリースを除く、利用可能なパッケージの最新バージョン。
たとえば、アプリがfoo
とbar
パッケージに依存しているが、bar
の最新バージョンではfoo
の古いメジャーバージョンのみが許可されているとします。その結果、foo
の最新の解決可能バージョンは、foo
の最新バージョンとは異なります。
pubspec.yaml
ファイルを編集する場合は、通常、依存関係とdev_dependenciesセクションを更新して、各パッケージが解決可能カラムのバージョンを使用するようにします。
オプション
#すべてのコマンドに適用されるオプションについては、グローバルオプションを参照してください。 pub コマンド。
--[no-]dependency-overrides
#デフォルトでは、パッケージの制約を解決するときにdependency_overrides
が考慮されます(--dependency-overrides
)。オーバーライドを考慮しない場合は、--no-dependency_overrides
を使用します。
--[no-]dev-dependencies
#デフォルトでは、パッケージの制約を解決するときに開発の依存関係が考慮されます(--dev-dependencies
)。開発の依存関係を考慮しない場合は、--no-dev-dependencies
を使用します。
--json
#JSON形式で出力を生成します。
--[no-]prereleases
#デフォルトでは、最後のパッケージバージョンを決定するときにプレリリースが含まれます(--prereleases
)。プレリリースを考慮しない場合は、--no-prereleases
を使用します。
--[no-]transitive
#デフォルトでは、推移的な依存関係が出力に含まれません(--no-transitive
)。推移的な依存関係を含めるには、--transitive
を使用します。
--[no-]up-to-date
#デフォルトでは、最新バージョンの依存関係は含まれません(--no-up-to-date
)。最新バージョンの依存関係を含めるには、--up-to-date
を使用します。
特に明記されていない限り、このサイトのドキュメントはDart 3.5.3を反映しています。ページの最終更新日:2024-05-06。 ソースを表示 または 問題を報告する.