Windows環境でNode.jsとExpressでNODE_ENV=productionを設定する方法
Windows環境でNode.jsとExpressでNODE_ENV=productionを設定する方法
Node.jsアプリケーション開発において、開発環境と本番環境を区別するために環境変数 NODE_ENV
を利用することが一般的です。NODE_ENV
に production
を設定することで、本番環境向けの動作をさせることができます。
この解説では、Windows環境で node.js
と express
を使用する場合に、NODE_ENV=production
を設定する方法について、以下の4つの方法を紹介します。
- コマンドプロンプト
- バッチファイル
- システム環境変数
- .envファイル
それぞれの方法について、設定手順と利点・欠点、および注意点などを詳しく説明します。
コマンドプロンプトを使用して、一時的に NODE_ENV
を production
に設定する方法です。
設定手順
- コマンドプロンプトを開きます。
- 以下のコマンドを実行します。
set NODE_ENV=production
node
コマンドを実行してアプリケーションを起動します。
利点
- 設定が簡単
- 一時的に設定したい場合に有効
欠点
- コマンドプロンプトを毎回開く必要がある
- アプリケーションを再起動するたびに設定を再度実行する必要がある
注意点
- コマンドプロンプトを閉じてしまうと、設定が解除されます。
バッチファイルを作成して、NODE_ENV
を設定する方法です。
- テキストエディタを開きます。
- 以下の内容を記述します。
@echo off
set NODE_ENV=production
start node app.js
- ファイルを
.bat
拡張子で保存します (例:start-production.bat
)。 - バッチファイルをダブルクリックして実行します。
- バッチファイルを編集することで、設定を簡単に変更できる
- バッチファイルの編集方法を理解する必要がある
- バッチファイルの場所は、アプリケーションの起動時に考慮する必要があります。
システム環境変数に NODE_ENV
を設定する方法です。
- コントロールパネルを開きます。
- 「システムとセキュリティ」 -> 「システム」 -> 「システムの詳細設定」 -> 「環境変数」 を選択します。
- 「システム環境変数」 で、「新規」 をクリックします。
- 変数名に
NODE_ENV
、変数値にproduction
を入力して、「OK」 をクリックします。
- 設定が永続的に保存される
- すべてのアプリケーションで設定が有効になる
- 設定に時間がかかる
- システム環境変数を誤って変更してしまう可能性がある
- システム環境変数は、すべてのユーザーに影響を与えるため、注意が必要です。
- プロジェクトのルートディレクトリに
.env
という名前のファイルを作成します。
NODE_ENV=production
dotenv
パッケージをインストールします。
npm install dotenv
- アプリケーションの起動コードに以下のコードを追加します。
require('dotenv').config();
// ...
- 環境変数をコードから分離できる
.env
ファイルをgitignoreすることで、本番環境の環境変数を公開せずに済む
dotenv
パッケージが必要
.env
ファイルは、安全な場所に保存する必要があります。
Windows環境で node.js
と express
を使用する場合に、NODE_ENV=production
を設定するには、上記4つの方法があります。それぞれの方法には利点と欠点があるため、プロジェクトの要件に合わせて最適な方法を選択してください。
@echo off
set NODE_ENV=production
start node app.js
方法 3: システム環境変数
- 変数名:
NODE_ENV
- 変数値:
production
方法 4: .envファイル
NODE_ENV=production
アプリケーションの起動コード
require('dotenv').config();
// ...
補足
上記のサンプルコードは、基本的な設定例です。プロジェクトの要件に合わせて、コードを修正する必要があります。
その他の NODE_ENV=production 設定方法
PM2 は、Node.js アプリケーションを管理するためのツールです。PM2 を使用して、アプリケーションを起動する際に NODE_ENV
を設定することができます。
- PM2 をインストールします。
npm install pm2 -g
pm2 start app.js --env production
- PM2 は、アプリケーションの自動起動、クラッシュ時の再起動、ログ管理などの機能を提供します。
- PM2 を使用する必要がある
Docker は、アプリケーションをコンテナ化するためのツールです。Dockerfile を使用して、NODE_ENV
を設定することができます。
- Dockerfile を作成します。
FROM node:16
ENV NODE_ENV production
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["node", "app.js"]
docker build -t my-app .
docker run -p 3000:3000 my-app
- Docker は、アプリケーションを環境に依存せずに実行できる環境を提供します。
- Docker の知識が必要
Heroku は、クラウドサービスプロバイダーです。Heroku 上でアプリケーションをデプロイする際に、NODE_ENV
を設定することができます。
- Heroku にアカウントを作成します。
- Heroku CLI をインストールします。
heroku create my-app
heroku config:set NODE_ENV=production
heroku ps:scale web=1
- Heroku は、アプリケーションのデプロイと管理を簡単にするサービスを提供します。
- Heroku のアカウントが必要
now deploy
- Now は、サーバーレスでアプリケーションをデプロイできるプラットフォームを提供します。
node.js express