バージョン制約と Lockfile
依存関係のバージョンを固定して解決します
「バージョン制約と Lockfile」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。
制約が必要な理由
version constraintは、プロジェクトが受け入れるパッケージのリリースをpubに伝えます。修正を取り込みながら、互換性を壊す変更を避けるための仕組みです。🎯
http: ^1.2.0セマンティックバージョニング
Dartパッケージはsemantic versioning(major.minor.patch)に従います。majorの更新は互換性を壊す変更、minorの更新は機能追加、patchの更新はバグ修正を示します。
version: 2.4.1Caret制約
caretの^1.2.0は、1.2.0以上2.0.0未満のバージョンを受け入れます。pubが使う、扱いやすいデフォルトです。
http: ^1.2.01つのバージョンに固定する
数値だけを書くと、他ではなくそのバージョンをexactly指定することになります。特定のリリースが必要な場合に限り、慎重に使ってください。
http: 1.2.0範囲制約
比較演算子を使ってrangeを明示できます。下限と上限の両方を細かく制御できます。
http: '>=1.0.0 <2.0.0'any制約
anyを使うと、すべてのバージョンを受け入れます。将来のメジャーリリースで壊れるおそれがあるため危険です。代わりにcaretを優先してください。
http: anyLockfileを知る
pubが依存関係を解決すると、選択した正確なバージョンをpubspec.lockに記録します。このファイルによって、実際に全員がインストールするバージョンを固定できます。
再現可能なビルド
Lockfileはreproducibleなビルドを保証します。チームメンバーがpub getを実行しても、予期しないアップグレードではなく、テスト済みのものとまったく同じバージョンが取得されます。
コミットすべきか
アプリではpubspec.lockをバージョン管理にcommitします。再利用可能なパッケージでは、利用者が自分でバージョンを解決できるよう、含めないでください。
Lockfileを更新する
dart pub upgradeを実行すると、pubspec.lockを制約で許可される最新バージョンに更新できます。通常のgetでは既存の固定バージョンが維持されます。
dart pub upgrade競合を解決する
2つのパッケージが互換性のないバージョンを要求すると、pubはconflictを報告します。その場合は制約を緩和するか、互換性のあるパッケージバージョンを選びます。
クイックチェック
制約^1.2.0では何が許可されますか。
まとめ
これで、caretや範囲などのconstraintsを読み取り、pubspec.lockによって正確なバージョンを固定し、再現可能で競合のないビルドを実現できることを学びました。🎉
よくある質問
「バージョン制約と Lockfile」レッスンは無料ですか?
はい。「バージョン制約と Lockfile」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。
「バージョン制約と Lockfile」で何を学びますか?
依存関係のバージョンを固定して解決します ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Dart Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「バージョン制約と Lockfile」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このDart Academyレッスンでコードを書いて実行できますか?
はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- pubspec.yaml の構成
- dart pub による依存関係の追加
- Imports、Exports、Libraries
- バージョン制約と Lockfile