NODE_ENV 활용하기

조광연·2021년 1월 16일
1

LUVT

목록 보기
5/5


동적으로 process.env를 변경하는 것은 리눅스나 맥 환경에서만 작동한다.
윈도우 환경에서 해당 코드가 작동하기 위해서는 cross-env를 설치해야 한다.

npm i cross-env

윈도우 local에서 development 모드로 잘 찍혀 나오는거 확인.

dotenv를 사용해서 환경변수 분기 처리를 해줄거기 때문에 dotenv 설치후에 config 폴더를 만들고 .env.development, .env.production, .env.test 파일을 만든후 env.ts에 아래와 같은 코드를 작성해준다.

npm install dotenv

import dotenv from "dotenv";
import path from "path";

if (process.env.NODE_ENV === 'development') {
    dotenv.config({path: path.join(__dirname, './.env.development')});
} else if(process.env.NODE_ENV === 'test') {
    dotenv.config({path: path.join(__dirname, './.env.test')});
} else if(process.env.NODE_ENV === 'production') {
    dotenv.config({path: path.join(__dirname, './.env.production')});
}

export default {
    API_URL: process.env.API_URL
}

API_URL도 환경에 맞게 잘 뽑아져 나오는거 확인.

ecosystem.config.js 는 아래와 같이 변경한다.

module.exports = {
  apps : [{
    name: 'luvt_client',
    script: 'server.ts',
    env: {
      NODE_ENV: "development",
    },
    env_production: {
      NODE_ENV: "production",
    },
    env_test: {
      NODE_ENV: "test"
    }
  }]
};

test모드로 실행시키려면 동일하게

pm2 start ecosystem.config.js --env test

profile
자바스크립트 개발자

0개의 댓글