最近 npm version
というコマンドを教えてもらいました。
npm は Node.js のバージョン管理ツールで、npm install
くらいしか使っていないので、こういう使い方があるんだぁと感心しました。そもそもこのコマンド自体を教えてもらって初めて知りました。
ここでは、npm version
の使い方を紹介します(解説は公式ドキュメントを元に行います)。
npm version
今手元の環境で npm version
を実行すると以下のような出力が得られます。
$ npm version
{
npm: '6.9.0',
ares: '1.15.0',
brotli: '1.0.7',
cldr: '35.1',
http_parser: '2.8.0',
icu: '64.2',
llhttp: '1.1.1',
modules: '72',
napi: '4',
nghttp2: '1.38.0',
node: '12.1.0',
openssl: '1.1.1b',
tz: '2019a',
unicode: '12.1',
uv: '1.28.0',
v8: '7.4.288.21-node.16',
zlib: '1.2.11'
}
バージョンの更新
npm version
は、サブコマンドで以下のものを渡して実行することでバージョンをインクリメントすることができます。
Vue.js のリポジトリを手元にダウンロードしてきてリポジトリのルートで実行してみます。
$ npm version
{
vue: '2.6.10',
npm: '6.9.0',
ares: '1.15.0',
brotli: '1.0.7',
cldr: '35.1',
http_parser: '2.8.0',
icu: '64.2',
llhttp: '1.1.1',
modules: '72',
napi: '4',
nghttp2: '1.38.0',
node: '12.1.0',
openssl: '1.1.1b',
tz: '2019a',
unicode: '12.1',
uv: '1.28.0',
v8: '7.4.288.21-node.16',
zlib: '1.2.11'
}
Git リポジトリ内でじっこうすること、先程のものから package.json
に記載したパッケージのバージョンの表記も追加されています。
このバージョンをインクリメントすることができます。
バージョンの仕様は semver に準拠していて、対象のバージョンナンバーを指定して以下のように実行します(引き続き Vue.js のリポジトリで行っています)。
$ npm version patch
v2.6.11
バージョン情報を出力してみると:
$ npm version
{
vue: '2.6.11',
npm: '6.9.0',
ares: '1.15.0',
brotli: '1.0.7',
cldr: '35.1',
http_parser: '2.8.0',
icu: '64.2',
llhttp: '1.1.1',
modules: '72',
napi: '4',
nghttp2: '1.38.0',
node: '12.1.0',
openssl: '1.1.1b',
tz: '2019a',
unicode: '12.1',
uv: '1.28.0',
v8: '7.4.288.21-node.16',
zlib: '1.2.11'
}
バージョンのインクリメント以外に、Gitのコミット、タグ付けも行われているので確認してみます。
$ git log
commit 2a5fabccf2199ba09ac5f32f0b73df0bca5462be (HEAD -> dev, tag: v2.6.11)
Author: tokuda109 <example@gmail.com>
Date: Tue Oct 22 09:32:58 2019 +0900
2.6.11
... (省略)
コミット履歴があります。
コミットメッセージを指定する場合は以下のようにします。
$ npm version patch -m "Upgrade to %s for reasons"
v2.6.11
%s
の部分にバージョンが展開されてコミットされます。
$ git log
commit 8762348dfa78e420314158c14530fd43241e7d29 (HEAD -> dev, tag: v2.6.11)
Author: tokuda109 <example@gmail.com>
Date: Tue Oct 22 09:38:51 2019 +0900
Upgrade to 2.6.11 for reasons
以下を実行してタグの一覧を確認してみます。
$ git tag
0.10.0-rc
0.11.0
... (省略)
v2.6.10
v2.6.11
... (省略)
タグ付けもされていることが確認できました。
次にメジャーバージョンを上げてみます。
$ npm version major
v3.0.0
再度バージョン情報を出力してみると:
$ npm version
{
vue: '3.0.0',
npm: '6.9.0',
ares: '1.15.0',
brotli: '1.0.7',
cldr: '35.1',
http_parser: '2.8.0',
icu: '64.2',
llhttp: '1.1.1',
modules: '72',
napi: '4',
nghttp2: '1.38.0',
node: '12.1.0',
openssl: '1.1.1b',
tz: '2019a',
unicode: '12.1',
uv: '1.28.0',
v8: '7.4.288.21-node.16',
zlib: '1.2.11'
}
期待どおりの動作をしていることが確認できました。
今回紹介した以外にも以下のバージョンナンバーを指定してインクリメントすることができます。
- major (
v2.6.10
->v3.0.0
) - minor (
v2.6.10
->v2.7.0
) - patch (
v2.6.10
->v2.6.11
) - premajor (
v2.6.10
->v3.0.0-0
) - preminor (
v2.6.10
->v2.7.0-0
) - prepatch (
v2.6.10
->v2.6.11-0
)
npm version prerelease
npm version prerelease
は premajor
、preminor
、prepatch
によって付与されたプレリリースバージョンをインクリメントするためのサブコマンドです。
$ npm version prepatch
v2.6.11-0
次に以下のように実行してみます:
$ npm version prerelease
v2.6.11-1
Top comments (0)