web アプリケーションのバージョン番号はいたるところに現れます。例えば、package.json、composer.json、APIドキュメント、外部への説明用ドキュメント。この中で連動して更新されるべきものもしばしばあります。
私的によくあるのが JavaScript と PHP で構成された web アプリケーションでそのアプリケーションを表現するバージョン番号は package.json, composer.json に揃って書かれる、というものです。これを簡単に行うためのスクリプト例が次です。
const fs = require('fs'); const process = require('process'); const updateVersion = (filePath) => { const composer = JSON.parse(fs.readFileSync(filePath).toString()); // json ファイルの中身を取得 composer.version = process.argv[2]; // コマンドライン引数を取得 fs.writeFileSync(filePath, JSON.stringify(composer, null, 4) + '\n'); // 人間に読みやすい JSON 文字列で書き込み }; updateVersion('./composer.json'); updateVersion('./package.json');
次のように使います。
node updateVersion.js 0.25.0 # 各設定ファイルのバージョンを 0.25.0 に更新
これだけでバージョンが揃って書き換わります。これは json 設定ファイルですが、yaml なり何なりでも同様に version を書き込む対象の部分を process.argv[2] で置き換えるだけです。
簡易なスクリプトですが、有無で案外ミスや手間の数が変わります。