인프런 커뮤니티 질문&답변

으하핳님의 프로필 이미지

작성한 질문수

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

노드 리액트 기초 강의 #9 비밀 설정 정보 관리

process.env.NODE_ENV

해결된 질문

20.05.05 15:38 작성

·

5.6K

0

강의 너무나 잘보고 있습니다.궁금한 게 있는데

process.env는 제가 설정을 따로 안했는데도 쓸 수 있는걸 보니,노드를 설치하면 따라오는 process객체를 통해 접근하는 거로 이해가 가는데요.그렇다면

1.NODE_ENV도 노드설치시 process.env객체 안에 자동으로 있는 key이기에 사용가능한가요?

2. process.env.NODE_ENV === 'production'은 헤로쿠 통해 배포시에 사용하는 것은 알겠는데

npm start 실행시 production일지 / dev일지는 제가 따로 안 준것 같은데 별 말 없으면 노드는 자동으로 dev모드로 실행하는 건가요???

답변 3

4

John Ahn님의 프로필 이미지
John Ahn
지식공유자

2020. 05. 05. 17:16

1. process.env는 노드에서 global로 설정 되어 있지만 
     NODE_ENV는   실제  index.js 에서    console.log('process.env.NODE_ENV', process.env.NODE_ENV)
     이렇게 하면   output 이    undefined로  뜹니다 ^^ 
     heroku로 deploy할때는 heroku에서 기본적으로 (default)      production으로 지정해줍니다.
     

2. 다른 곳에서 배포할때는   package.json에서 

"scripts": {
"dev": "NODE_ENV=development nodemon index.js",
"prod": "NODE_ENV=production node index.js",
"prod:compress": "NODE_ENV=production USE_COMPRESS=1 node index.js"
},

이런식으로 지정해줄수 있겠습니다 !

수고하세요 ~ !         

1

배세준님의 프로필 이미지

2022. 02. 28. 19:32

저도 process.env.NODE_ENV 의 설정이 없는데 어떻게 돌아가는건지 이해가 잘 안되었는데 저렇게 Scripts에서 설정해주는 거군요.

그리고 현재 코드는 undefined 값을 가지고 있어서 else쪽으로 빠져서 dev.js의 리턴값을 받는거고요

완벽하게 이해되었네요

0

으하핳님의 프로필 이미지
으하핳
질문자

2020. 05. 06. 17:02

그렇다면 대문자로된 변수명_ENV=value 이런식의 선언이면 어디서든 process.env통해 접근이 가능한 건가요?

감사합니다.쇼핑몰 클론까지 열심히 달려보겠습니다.