設定の階層構造
- dotenv:
dotenv
は、単一の.env
ファイルから環境変数を読み込むシンプルな方法を提供します。階層構造はなく、ファイル内の変数はフラットに扱われます。 - rc:
rc
は、設定ファイル、環境変数、コマンドライン引数を組み合わせて設定を読み込みます。階層構造はありませんが、複数のソースから設定を統合することができます。 - config:
config
は、環境ごとに異なる設定を階層的に管理できます。各環境(開発、テスト、本番)ごとに異なる設定ファイルを用意し、必要に応じてオーバーライドできます。 - nconf:
nconf
は、多層的な設定管理をサポートします。複数のソース(ファイル、環境変数、コマンドライン引数など)から設定を読み込み、優先順位を設定してオーバーライドできます。
環境変数のサポート
- dotenv:
dotenv
は、環境変数を.env
ファイルから読み込むことに特化しています。 - rc:
rc
は、環境変数を設定の一部として自動的に読み込みます。 - config:
config
は、環境変数を設定ファイル内で参照することができますが、環境変数を直接読み込む機能はありません。 - nconf:
nconf
は、環境変数を設定ソースの一つとして扱い、他のソースと組み合わせて使用できます。
設定のオーバーライド
- dotenv:
dotenv
は、.env
ファイル内の変数を直接編集することでオーバーライドできます。 - rc:
rc
は、コマンドライン引数が最も優先され、次に環境変数、最後に設定ファイルの順でオーバーライドされます。 - config:
config
は、環境ごとに異なる設定ファイルを用意することで、設定をオーバーライドできます。 - nconf:
nconf
は、設定の優先順位を設定することで、複数のソースから読み込んだ設定を柔軟にオーバーライドできます。
使用例
- dotenv:
dotenv
の使用例require('dotenv').config(); console.log(process.env.DB_HOST);
- rc:
rc
の使用例const rc = require('rc'); const config = rc('myapp'); console.log(config);
- config:
config
の使用例const config = require('config'); const dbConfig = config.get('db'); console.log(dbConfig);
- nconf:
nconf
の使用例const nconf = require('nconf'); nconf.file('config.json'); nconf.env(); const dbHost = nconf.get('DB_HOST'); console.log(dbHost);