LoginSignup
46
26

More than 3 years have passed since last update.

【Dart】pubspec.yamlのバージョン指定方法

Last updated at Posted at 2020-03-23

はじめに

こちらの内容を参考にしています。

pubspec.yamlのバージョン指定方法

ここでは、セマンティックバージョニングによってバージョン指定されていることを前提としています。
また、解説のため、メジャーバージョンはx,マイナーバージョンはy,パッチバージョンはzで表現しています。

DartのSemanticバージョニングについての説明はこちら
https://dart.dev/tools/pub/versioning#semantic-versions

未指定 or any

どのバージョンでもokという指定方法。
できる限り一番最新のバージョンがインストールされる。(他に指定しているライブラリのバージョンに依存している場合は、できる限り最新のバージョンになる)

pubspec.yaml
dependencies:
  rxdart:       # どちらでもOK
  provider: any # どちらでもOK

ただ、anyは、パフォーマンス上の理由から推奨されていないそうです。

x.y.z

記述したバージョンのみの指定。この場合は4.0.3が必ず取得される。

pubspec.yaml
dependencies:
  provider: 4.0.3

>=x.y.z

記述したバージョン以上の指定。この場合4.0.3は含まれる。

pubspec.yaml
dependencies:
  provider: >=4.0.3

>x.y.z

記述したバージョンより大きいバージョンの指定。この場合4.0.3は含まれない。

pubspec.yaml
dependencies:
  provider: >4.0.3

<=x.y.z

記述したバージョン以下の指定。この場合4.0.3は含まれる。

pubspec.yaml
dependencies:
  provider: <=4.0.3

<x.y.z

記述したバージョン未満の指定。この場合4.0.3は含まれない。

pubspec.yaml
dependencies:
  provider: <4.0.3

'>=a.b.c <x.y.z'

a.b.c以上、x.y.z未満という指定方法。

pubspec.yaml
dependencies:
  provider: '>=4.0.3 <5.0.0'

^x.y.z

Caret syntaxと呼ばれるもの。
指定したバージョンの下位互換性を担保できるものが指定でき、セマンティックバージョニングの慣例に従って指定される。
例えば、^2.1.0と指定した場合、'>=2.1.0 <3.0.0'の省略形として定義できる。

pubspec.yaml
dependencies:
  provider: '^4.0.3'  # '>=4.0.3 <5.0.0'の意味

※Caret syntaxはDart1.8.3に追加されたので、1.8.3以上でないと使えないそうです。

まとめ

今までとりあえずCaret syntaxで指定していましたが、他にも色々指定方法があったので勉強になりました。参考になれば幸いです。

46
26
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
46
26