web アプリケーションのバージョン番号はいたるところに現れます。例えば、package.json、composer.json、APIドキュメント、外部への説明用ドキュメント。この中で連動して更新されるべきものもしばしばあります。
私的によくあるのが JavaScript と PHP で構成された web アプリケーションでそのアプリケーションを表現するバージョン番号は package.json, composer.json に揃って書かれる、というものです。これを簡単に行うためのスクリプト例が次です。
1 2 3 4 5 6 7 8 9 10 | 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] で置き換えるだけです。
簡易なスクリプトですが、有無で案外ミスや手間の数が変わります。