728x90

 

process.env.NODE_ENV = 'production'

 

몸 담고 있는 곳의

정책별로 상이할 수 있지만 보통 개발할 때 서버를

development / stage / production

나눠 사용한다.

 

너무나 귀엽게도 난

NODE_ENV 값이

stage 나 production에서는  production,

개발계에서는  development

라고 생각했다..

 

하지만 저 3개의 서버에서 

NODE_ENV 값은 모두 production 이 나온다. 

저만 바보예요? 네 맞아요

 

지금껏 development, production 표시를 보고 그거겠다~

싶은 무생각 논리가 불러온 대단한 착오였다. 생각하며 코딩하기.. 메모..

당장 코드를 한 두줄만 읽어 보더라도 절대 그럴 수 없음을 확인할 수 있었다.

혹시나 그렇게 그러려니 생각했던 분이 계시다면..

아닙니다!!

 

 

process.env.NODE_ENV 값은?

nextjsd에서 기본적으로 해당 값은 아래와 같다.

 

[실행 명령어]     =>  [process.env.NODE_ENV]

npm run dev    => development

npm run build  => production

npm run start   => production

 

각각의 서버에서는 보통 빌드해서 돌리기 때문에 해당 값이 production으로 떨어진다.

개발 서버라고 'development'라고 나오지 않아요!!ㅜㅠ

 

 

환경변수 설정해 보기

그렇다면..?! 우리가 원하는

그 개발 서버임을 확인하는 방법은..?

 

 

루트 폴더에 있는 해당 파일들에 변수를 설정해 두면 된다. 

우선순위는 env > env.dev... or env.production이다. 상세한 파일이 우선순위가 더 높다.

 

그러고 나면 화면에서process.env.NEXT_PUBLIC_QWERTY로 접근가능하다.

next에서 설정 시 앞에 NEXT_PUBLIC  prefix를 꼭 붙여 줘야만 한다~!

prefix가 없으면 Node.js 환경에서만 읽을 수 있다.

 

NEXT 프로젝트에서 prefix 없는 변수는 /page에서만 읽을 수 있고,

클라이언트단 페이지에서는 undefined 값이 나오는 것을 직접 확인해 볼 수 있다.

 

이제 저기에 development에서는 dev, poroduction에서는 production 등의 값을 넣어서개발서버인지를 확인해 볼 수 있다!

 

 


 

 

일을 처리하는 것만 생각하지 않고

하나하나 나의 코드에 이유와 의미를 찾으면서 작업해 나가면

좀 더 멋쟁이 개발자가 될 수 있지 않나 싶다.

우다다다 코드만 늘어 두지 않기!

728x90

+ Recent posts