Node.js 에서 NODE_ENV 값으로 배포/개발 환경설정하기steemCreated with Sketch.

in #kr7 years ago

보통 Node.js 를 실행할 때

nodejs

NODE_ENV 값을 이용해서

production ( 배포 ) 모드
development ( 개발 ) 모드

이렇게 두 가지로 나누어서 실행하게 되는데요.

Node.js 프레임워크인 Express 의 경우


production 모드 일때는

파일 캐싱, 에러 메시지 감추기 등 배포의 적합한 환경 설정을 하구요.


development 모드 일 때는

파일 캐싱 방지, 디버그를 위한 상세한 에러 메시지 보이기

개발에 도움을 줄 수 있는 환경으로 설정을 해줍니다.


하지만 직접 이 값을 알아 내고 싶을 때가 있는데요.

이럴 때는 Express 에서 전체 앱을 총괄하는 역할을 맡고 있는 root 디렉토리의 app.js 에서 첫 줄


process.env.NODE_ENV = ( process.env.NODE_ENV && ( process.env.NODE_ENV ).trim().toLowerCase() == 'production' ) ? 'production' : 'development';


이렇게 해주면 NODE_ENV 가 따로 지정이 안되어 있더라도 development 모드로 지정되게 해줄 수 있습니다.


이후 이 앱 소스 어디에서나 ( require 된 파일 포함 )

if (process.env.NODE_ENV == 'production') {
  console.log("Production Mode");
} else if (process.env.NODE_ENV == 'development') {
  console.log("Development Mode");
}

위 처럼 NODE_ENV 값에 따라 하고 싶은 일을 함으로써 개발과 배포용 소스를 따로 분리해서 코딩 할 수 있습니다.


혹시 NODE_ENV 값을 설정하는 방법을 모르신다면

Linux, Mac OS X 기준으로

Terminal, Shell 창에서

export NODE_ENV=production

이렇게 해주시면 NODE_ENV 값을 설정 할 수 있게 됩니다.


한가지 더!

Terminal, Shell 창이 아닌 Windows 운영체제에서 Node.js 를 구동하실 때에는

set NODE_ENV=production

이렇게 조금 다른 명령어로 NODE_ENV 값을 설정할 수 있습니다.

Sort:  

안그래도 조만간 Node.js 사용해야 됬는데 감사합니다!

This post received a 93.31% upvote from @jongeun thanks to @jongeun! For more information, click here!