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の設定など他にもあるようですので、興味のある方は見てみてください。