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"