Edited at

Nodeプロジェクトで環境依存の設定の管理方法

More than 3 years have passed since last update.

Nodeプロジェクトで環境依存の設定の管理方法を紹介します。例えばDBの設定は、デプロイ環境や各ユーザの開発環境に依存するので、環境依存の設定といえるでしょう。これらの設定はコード内に埋め込まず、ユーザ各自またはデプロイスクリプトに任せるべきです。環境依存の設定をNodeプロジェクトで管理するとき、dotenvモジュールが便利です。


dotenvを使う

dotenvモジュールは、.env ファイルから process.env へ環境変数をロードするモジュールです。dotenvを使うと、プロジェクトのコードから独立した環境依存の設定を、ローカル単位で管理することができます。

dotenvパッケージは npm からインストールできます。依存モジュールがゼロなのが嬉しいです。

npm install dotenv --save

.envファイルは、プロジェクトのルートディレクトリに配置します。


.env

DB_HOST="localhost"

DB_USER="root"
DB_PASS="s1mpl3"

dotenvを使って環境変数をロードするには、次のように記述します。

// 設定を.envからロード

require('dotenv').config();

// process.envから参照可能
db.connect({
host: process.env.DB_HOST,
username: process.env.DB_USER,
password: process.env.DB_PASS
});


dotenvを使った運用

.env ファイルは通常、リポジトリに含ませるべきではありません。そのためプロジェクトの .gitignore にルールを追加します。


.gitignore

/.env


また新たなプロジェクト参入者が容易に .env ファイルを設定できるよう、.env の雛形をプロジェクトに追加しておくと親切です。


.env.sample

DB_HOST="db-server.example.com"

DB_USER="db_user"
DB_PASS="db_password"