40
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

npm versionコマンドで出来ること。

Last updated at Posted at 2018-05-28

調べた経緯

自分でnpmパッケージを作ったので、パッケージのバージョン番号を更新する場面があって初めて$ npm versionというコマンドを使うようになりました。

$ npm versionコマンド自体は、引数に応じてpackage.jsonのバージョン番号(version要素)の値を更新・Gitコミットし、そのバージョン番号の名前を持ったGitのタグを作成するコマンドです。

しかし、公式ドキュメントに詳細が書いてあるものの、引数の種類が多く、何が起こるのかパッと見ただけでは自分にはわからなかったので、ローカルで各コマンドを実行しつつまとめました。

引数について

公式ドキュメント上にはnpm versionコマンドの引数は下記の9個があります。

  • <newversion>
  • major
  • minor
  • patch
  • premajor
  • preminor
  • prepatch
  • prerelease
  • from-git

大きく分けるとfrom-gitfrom-git以外の2種類に分けられるそうです。

from-git

名前の通り、git上で設定された最新のタグを読んで、そのタグのバージョン番号をnpmパッケージのバージョンとして設定するコマンド。

from-git以外

コマンド実行時点でパッケージに設定されているバージョン番号から新しく設定するコマンド。

<newversion> となっている部分は、 from-git以外のものを指すようです。

<newversion> = major, minor, patch, premajor, prepatch, prerelease

というようなイメージのようです。
(もし違っていたらすみません、その際にはツッコミをお願いします:pray:

<newversion>対応表

<newversion>from-git以外)のコマンドを実行する時のパッケージのバージョンが1.0.0であった場合、下記の表の通りになります。

コマンド 実行後のバージョン番号
$ npm version major 2.0.0
$ npm version minor 1.1.0
$ npm version patch 1.0.1
$ npm version premajor 2.0.0-0
$ npm version preminor 1.1.0-0
$ npm version prepatch 1.0.1-0
$ npm version prerelease 1.0.1-0

$ npm version prerelease について

上記の表にまとめた時に、prepatchprereleaseがなぜ同じバージョンになるのかがわかりませんでした。

ですが、prereleaseについて検索したところヒットした、Stack Overflowの「What is the convention for versioning npm packages prior to 1.0.0?」というスレッドで、

prerelease
Lets say your package starts at version 0.0.0
npm version prerelease => 0.0.1-0
npm version prerelease => 0.0.1-1
Basically just bumps the number after the dash

という記述があり、prereleaseコマンドは、ダッシュの後の番号(プレリリース版としてのバージョン番号)を上げる時に使用するコマンドとようやく理解できました。

コマンド実行時のバージョン番号が1.0.1-0であった時に、再度実行したときには下記の表のように挙動が異なることを確認できました。

コマンド 実行後のバージョン番号
$ npm version prepatch 1.0.2-0
$ npm version prerelease 1.0.1-1

参考ページ

40
28
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
40
28

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?