Node.jsコードで「package.json」ファイルからバージョンを取得する3つの方法
ここでは、Node.jsコードで "package.json" ファイルからバージョンを取得する3つの方法を紹介します。
require モジュールを使う
最も一般的な方法は、require
モジュールを使って "package.json" ファイルを読み込み、version
プロパティにアクセスする方法です。
const packageJson = require('../package.json');
const version = packageJson.version;
console.log(`バージョン: ${version}`);
このコードは、../package.json
ファイルを読み込み、version
プロパティの値を取得して出力します。
process.env オブジェクトを使う
Node.js環境変数 process.env
には、実行中のNode.jsプロセスに関する情報が含まれています。その中に npm_package_version
という変数があり、これが "package.json" ファイルの version
プロパティの値と同じになっています。
const version = process.env.npm_package_version;
console.log(`バージョン: ${version}`);
このコードは、process.env
オブジェクトから npm_package_version
変数の値を取得して出力します。
npm version コマンドを使う
npm
コマンドラインツールを使って、プロジェクトのバージョン情報を取得することもできます。
$ npm version
このコマンドを実行すると、プロジェクトのバージョン情報が出力されます。
Node.jsコードで "package.json" ファイルからバージョンを取得するには、上記3つの方法があります。それぞれメリットとデメリットがあるので、プロジェクトの状況に合わせて最適な方法を選択してください。
// 1. requireモジュールを使う
const packageJson = require('../package.json');
const version = packageJson.version;
console.log(`バージョン: ${version}`);
// 2. process.envオブジェクトを使う
const version = process.env.npm_package_version;
console.log(`バージョン: ${version}`);
// 3. npm versionコマンドを使う
// ターミナルで実行
$ npm version
バージョン: 1.0.0
バージョン: 1.0.0
1.0.0
補足
- 上記コードは、
package.json
ファイルがプロジェクトのルートディレクトリにあることを前提としています。 package.json
ファイルのバージョン情報は、npm init
コマンドを実行してプロジェクトを初期化すると自動的に生成されます。- バージョン情報は、プロジェクトのバージョン管理システムで管理することをおすすめします。
その他の "package.json" ファイルからバージョンを取得する方法
package-json
モジュールを使うと、"package.json" ファイルの内容を簡単に読み込むことができます。
const packageJson = require('package-json');
const version = packageJson.version;
console.log(`バージョン: ${version}`);
fs
モジュールを使うと、"package.json" ファイルを読み込んで、バージョン情報を含むオブジェクトを取得することができます。
const fs = require('fs');
const packageJson = JSON.parse(fs.readFileSync('../package.json'));
const version = packageJson.version;
console.log(`バージョン: ${version}`);
child_process
モジュールを使うと、npm version
コマンドを実行してバージョン情報を取得することができます。
const child_process = require('child_process');
const version = child_process.execSync('npm version').toString().trim();
console.log(`バージョン: ${version}`);
node.js npm version