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 등의 값을 넣어서개발서버인지를 확인해 볼 수 있다!
일을 처리하는 것만 생각하지 않고
하나하나 나의 코드에 이유와 의미를 찾으면서 작업해 나가면
좀 더 멋쟁이 개발자가 될 수 있지 않나 싶다.
우다다다 코드만 늘어 두지 않기!
'Front-end' 카테고리의 다른 글
[Nextjs] Warning: Cannot update a component (`A`) while rendering a different component.. 해결하기 (0) | 2024.04.01 |
---|---|
[React] Errorboundary 테스트 해보기 (feat: Uncaught Runtime Error) (0) | 2024.03.27 |
[React] try-catch, error 타입 잡기 (1) | 2024.03.06 |
[TS] is 사용해서 타입가드 만들어보기 (0) | 2024.02.22 |
[React] event에 type 달아주기 (0) | 2024.02.21 |