package.jsonのdependencies
やdevDependencies
に依存するパッケージを指定することができます。
いまさらですが、そのパッケージのversionの指定方法についてまとめます。
##version
指定したversionと正確に一致するバージョンがインストールされます。
{
"dependencies": {
"foo": "1.0.0"
}
}
上記の場合は、1.0.0
のバージョンがインストールされます。
##>version
指定したversionより大きいバージョンがインストールされます。
{
"dependencies": {
"foo": ">1.0.0"
}
}
上記の場合は、1.0.0
より大きいバージョンがインストールされます。
また、<
、>=
、<=
の比較演算子を使用した場合も、その比較演算子が持つ意味通りのバージョンがインストールされます。
##version1 - version2
範囲指定を行なうことができます。
version1 - version2
と表記すると、>=version1 <=version2
と同じ意味となります。
{
"dependencies": {
"foo": "1.0.1 - 1.2.0"
}
}
上記の場合は、1.1.0
以上、1.2.0
以下のバージョンがインストールされます。
##X, *
X(もしくはx)や*をワイルドカードとして使うことができます。
{
"dependencies": {
"foo": "*", // どんなバージョンでもOK
"bar": "1.1.x", // >=1.1.0 and <1.2.0
"hoge": "1.X", // >=1.0.0 and <2.0.0
"huga": "" // "*"と同じことになる = どんなバージョンでもOK
}
}
4番目のhuga
パッケージのように、バージョンを何も指定しないと、"*"
の場合と同じ意味となります。
##~version
Tilde(チルダ)
記号を用いたときです。
versionのうち、minorバージョンが明記されている場合はpatchバージョン部分の更新ができ、そうでない場合はminorバージョンの更新がされます。
(バージョンの構成は major.minor.patch
となっています。)
{
"dependencies": {
"foo": "~1.1.1", // >=1.1.1 and <1.2.0
"bar": "~1.1", // >=1.1.0 and <1.2.0
"hoge": "~1" // >=1.1.0 and <2.0.0
}
}
##^version
Caret(キャレット)
記号を用いたときです。
major.minor.patch
のうち、一番左の0以外の数字のバージョンを更新しないような、更新が可能です。
{
"dependencies": {
"foo": "^1.1.1", // >=1.1.1 and <2.0.0
"bar": "^0.1.1", // >=0.1.1 and <0.2.0
"hoge": "^0.0.1" // >=0.0.1 and <0.0.2
}
}
###公式サイト