LoginSignup
9
8

More than 1 year has passed since last update.

npm versionコマンドでpackageのバージョンを上げる

Last updated at Posted at 2022-07-26

npmのバージョンを上げ、タグを切ってくれるコマンドがnpmにあるのを知らなかったので、触りながら調べてみました。

sandbox用のpackage作成

npm initをして、最初にversion 0.0.0で作ったpackageを使っていきます。

npm versionのコマンドの使い方はこちらです。

$ npm version -h
Bump a package version

Usage:
npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]

Options:
[--allow-same-version] [--no-commit-hooks] [--no-git-tag-version] [--json]
[--preid prerelease-id] [--sign-git-tag]
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
[-ws|--workspaces] [--no-workspaces-update] [--include-workspace-root]

versionを上げる

まずはpatchバージョンを上げてみます。

$ npm version patch
v0.0.1

これにより、versionを上げるcommitが追加され、tag(v0.0.1)が追加されています。

commit e124b89ba7545949a1440dcba4b45cf3b872a317 (HEAD -> main, tag: v0.0.1)
Author: kyntk
Date:   Tue Jul 26 22:57:23 2022 +0900

    0.0.1

diff --git a/package.json b/package.json
index 8d2bf39..633e565 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "version-sandbox",
-  "version": "0.0.0",
+  "version": "0.0.1",
   "description": "",
   "main": "index.js",
   "scripts": {

次にminorバージョンを上げてみます。

$ npm version minor
v0.1.0

prerelease

minorバージョンアップのprereleaseのバージョンをあげます。
preminorで上げたものを更にバージョンアップするにはprereleaseを使います。

$ npm version preminor
v0.2.0-0

$ npm version prerelease
v0.2.0-1

実際にminorバージョンアップするときは同じです。

$ npm version minor
v0.2.0

$ git log --oneline
2219d90 (HEAD -> main, tag: v0.2.0) 0.2.0
a5ec9c8 (tag: v0.2.0-1) 0.2.0-1
e9df7dd (tag: v0.2.0-0) 0.2.0-0
7cb690a (tag: v0.1.0) 0.1.0
e124b89 (tag: v0.0.1) 0.0.1
3d638fd Initial commit

preid

prereleaseのprefixをつけることができます。
alphaやbetaなどおなじみです。

$ npm version premajor --preid alpha
v1.0.0-alpha.0

$ npm version prerelease
v1.0.0-alpha.1

$ npm version premajor --preid beta                                                                                                                                                                  [main]
v2.0.0-beta.0

$ npm version prerelease
v2.0.0-beta.1

$ npm version prerelease
v2.0.0-beta.2

$ npm version major
v2.0.0

Semantic Versioningの仕様にあるように、patch versionまで一致しているときのバージョンのバージョンの大小は以下のようになります。

1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0.

Description

-mオプションをつけることで、コミットメッセージの設定ができます。
このとき、%sを使うと、バージョンに置き換えてくれます。

$ npm version patch -m "Upgrade to %s"
v2.0.1

$ git log
commit cda46e53d054e2b6ab3edef67ba8da1a7985a6c5 (HEAD -> main, tag: v2.0.1)
Author: kyntk
Date:   Tue Jul 26 23:24:14 2022 +0900

    Upgrade to 2.0.1

その他

npm versionの前後に処理をはさみたい時ようのscriptの設定など他にもあるようですので、興味のある方は見てみてください。

9
8
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
9
8