Node.js と npm で環境変数を設定する 3 つの方法
Node.js と npm における package.json から環境変数の設定方法
方法 1: config プロパティ
package.json
ファイルに config
プロパティを追加することで、環境変数を設定できます。
{
"name": "my-project",
"version": "1.0.0",
"description": "My awesome project",
"scripts": {
"start": "node index.js"
},
"config": {
"API_KEY": "YOUR_API_KEY",
"DATABASE_URL": "mongodb://localhost:27017/mydb"
}
}
この例では、API_KEY
と DATABASE_URL
という 2 つの環境変数を設定しています。
この方法の利点は、以下のとおりです。
- シンプルで分かりやすい
- 追加のライブラリをインストールする必要がない
欠点としては、以下の点が挙げられます。
- 環境変数の値が直接ファイルに記述されるため、セキュリティ上のリスクがある
- 複数の環境 (開発環境、本番環境など) に対応するには、
package.json
ファイルを複数用意する必要がある
方法 2: dotenv パッケージ
dotenv
パッケージを使うと、.env
ファイルという別のファイルに環境変数を記述することができます。
# .env ファイル
API_KEY=YOUR_API_KEY
DATABASE_URL=mongodb://localhost:27017/mydb
そして、package.json
ファイルに以下のスクリプトを追加します。
{
"name": "my-project",
"version": "1.0.0",
"description": "My awesome project",
"scripts": {
"start": "dotenv -e .env node index.js"
}
}
このスクリプトは、dotenv
パッケージを実行し、.env
ファイルから環境変数をロードします。
- 環境変数の値を
.env
ファイルに隠蔽することができ、セキュリティ上のリスクを軽減できる - 複数の環境に対応するために、
.env
ファイルを複数用意することができる
dotenv
パッケージをインストールする必要がある
方法 3: cross-env パッケージ
cross-env
パッケージを使うと、OS に依存せずに環境変数を設定することができます。
# .env ファイル
API_KEY=YOUR_API_KEY
DATABASE_URL=mongodb://localhost:27017/mydb
{
"name": "my-project",
"version": "1.0.0",
"description": "My awesome project",
"scripts": {
"start": "cross-env NODE_ENV=production node index.js"
}
}
- OS に依存せずに環境変数を設定できる
package.json
ファイルから環境変数を設定するには、上記 3 つの方法があります。
それぞれメリットとデメリットがあるため、プロジェクトの要件に合わせて最適な方法を選択してください。
方法 1: config プロパティ
// index.js
const config = require('./package.json').config;
console.log(`APIキー: ${config.API_KEY}`);
console.log(`データベースURL: ${config.DATABASE_URL}`);
方法 2: dotenv パッケージ
// index.js
require('dotenv').config();
console.log(`APIキー: ${process.env.API_KEY}`);
console.log(`データベースURL: ${process.env.DATABASE_URL}`);
方法 3: cross-env パッケージ
// index.js
const crossEnv = require('cross-env');
crossEnv.NODE_ENV = 'production';
console.log(`APIキー: ${process.env.API_KEY}`);
console.log(`データベースURL: ${process.env.DATABASE_URL}`);
実行方法
- Node.js をインストールする
npm
をインストールする- プロジェクトディレクトリを作成する
- プロジェクトディレクトリに
package.json
ファイルを作成する - サンプルコードを
index.js
ファイルとして保存する - 以下のコマンドを実行する
npm install
npm start
出力結果
APIキー: YOUR_API_KEY
データベースURL: mongodb://localhost:27017/mydb
補足
- 上記サンプルコードは、基本的な使用方法を説明するために簡略化されています。
- 実際のプロジェクトでは、環境変数の値を暗号化したり、環境ごとに異なる設定ファイルを使用するなどのセキュリティ対策を講じる必要があります。
package.json 以外で環境変数を設定する方法
.env
ファイルは、環境変数を設定するためのシンプルなファイル形式です。
# .env ファイル
API_KEY=YOUR_API_KEY
DATABASE_URL=mongodb://localhost:27017/mydb
.env
ファイルは、.gitignore
ファイルに追加して、コミットしないようにする必要があります。
.env
ファイルを読み込むには、以下の方法があります。
dotenv
パッケージを使う- シェルスクリプトで読み込む
コマンドラインで環境変数を設定するには、以下のコマンドを使用します。
export API_KEY=YOUR_API_KEY
export DATABASE_URL=mongodb://localhost:27017/mydb
このコマンドは、現在のシェルセッションでのみ環境変数を設定します。
永続的に環境変数を設定するには、.bashrc
などのファイルに以下の行を追加します。
export API_KEY=YOUR_API_KEY
export DATABASE_URL=mongodb://localhost:27017/mydb
システム環境設定で環境変数を設定するには、OS によって異なる方法があります。
-
Windows
- コントロールパネルを開く
- システムとセキュリティ > システム > システムの詳細設定 > 環境変数 > 新規 > ユーザー変数
- 変数名:
API_KEY
- 新規 > ユーザー変数
- 変数名:
DATABASE_URL
- 変数値:
mongodb://localhost:27017/mydb
- OK をクリック
-
Mac
- システム環境設定を開く
- ユーザーとグループ > ログイン項目
- 対象: 自分
- コマンド:
export API_KEY=YOUR_API_KEY && export DATABASE_URL=mongodb://localhost:27017/mydb
アプリケーションの設定ファイル
アプリケーションによっては、設定ファイルで環境変数を設定することができます。
詳細は、アプリケーションのドキュメントを参照してください。
package.json
ファイル以外にも、さまざまな方法で環境変数を設定することができます。
プロジェクトの要件に合わせて、最適な方法を選択してください。
node.js npm package.json