WindowsでNode.js開発を快適にする「NODE_ENV」環境変数の設定方法
Windows環境で「NODE_ENV」が認識されない問題
Windows環境でNode.jsプロジェクトを実行しようとすると、次のようなエラーメッセージが表示されます。
'NODE_ENV' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。
原因:
このエラーメッセージが表示される理由は、以下の2つが考えられます。
- 環境変数 NODE_ENV が設定されていない
- Node.jsコマンドを実行するターミナルが管理者権限で起動されていない
解決策:
以下の方法で問題を解決できます。
方法1: コマンドプロンプトで設定する
- コマンドプロンプトを管理者権限で起動します。
- 以下のコマンドを実行します。
set NODE_ENV=development
例:
C:\Users\your_username>set NODE_ENV=development
NODE_ENV=development
- プロジェクトフォルダに移動し、Node.jsコマンドを実行します。
方法2: .env ファイルを作成する
- プロジェクトフォルダに
.env
という名前のファイルを作成します。 - ファイル内に以下の内容を記述します。
NODE_ENV=development
ターミナルを管理者権限で起動する
- コマンドプロンプトまたはPowerShellを 管理者権限 で起動します。
補足:
NODE_ENV
環境変数は、Node.jsアプリケーションの動作環境を指定するために使用されます。- 一般的な値としては、
development
とproduction
があります。 development
は開発環境、production
は本番環境で使用されます。
上記の方法で問題が解決しない場合は、以下の情報を提供していただければ、さらに詳しく調査いたします。
- 使用しているOSのバージョン
- 使用しているコマンド
- エラーメッセージの詳細
ファイル構成:
- package.json
- index.js
package.json:
{
"name": "my-app",
"version": "1.0.0",
"description": "My first Node.js application",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"dependencies": {}
}
index.js:
// NODE_ENV 環境変数を出力する
console.log(process.env.NODE_ENV);
// NODE_ENV 環境変数によって処理を変える
if (process.env.NODE_ENV === 'development') {
console.log('開発環境です');
} else if (process.env.NODE_ENV === 'production') {
console.log('本番環境です');
} else {
console.log('不明な環境です');
}
実行方法:
- 以下のコマンドを実行して、
NODE_ENV
環境変数を設定します。
set NODE_ENV=development
- プロジェクトフォルダに移動し、以下のコマンドを実行してアプリケーションを起動します。
npm start
出力例:
development
開発環境です
- このサンプルコードでは、
NODE_ENV
環境変数によって処理を変えています。 - 実際のアプリケーションでは、環境変数に応じて異なる設定ファイルを読み込んだり、異なる処理を実行したりすることができます。
上記以外にも、様々な方法で NODE_ENV
環境変数を設定することができます。
- Node.js の
--env
オプションを使用する - アプリケーションコード内で設定する
NODE_ENV 環境変数を設定するその他の方法
.env
ファイルは、環境変数を設定するためのファイルです。.env
ファイルは、プロジェクトフォルダのルートに配置する必要があります。
NODE_ENV=development
.env
ファイルを使用するには、dotenv
モジュールをインストールする必要があります。
npm install dotenv
dotenv
モジュールをインストールしたら、アプリケーションコードで以下のコードを実行して .env
ファイルを読み込みます。
require('dotenv').config();
// ここから NODE_ENV 環境変数を使用できます
node
コマンドの --env
オプションを使用して、NODE_ENV
環境変数を設定できます。
node --env=production index.js
このコマンドは、NODE_ENV
環境変数を production
に設定して index.js
ファイルを実行します。
アプリケーションコード内で process.env.NODE_ENV
プロパティを設定することで、NODE_ENV
環境変数を設定できます。
process.env.NODE_ENV = 'development';
// ここから NODE_ENV 環境変数を使用できます
- 小規模なプロジェクトでは、
.env
ファイルを使用するのが最も簡単です。 - 大規模なプロジェクトでは、環境ごとに異なる設定ファイルを読み込む必要があるため、
dotenv
モジュールを使用するのが良いでしょう。 - 特定の環境でのみ動作する必要があるスクリプトを作成する場合は、
node
コマンドの--env
オプションを使用するのが良いでしょう。 - アプリケーションコード内で動的に
NODE_ENV
環境変数を変更する必要がある場合は、アプリケーションコード内で設定するのが良いでしょう。
windows node.js