환경 변수 란 ?
어떠한 프로세스가 실행될 때 영향을 미치는 동적인 값
OS 단에 선언되어있는 배포 환경에 따라 값을 동적으로 변경하기 위한 변수
내가 하고 싶었던 건?
환경변수인 NODE_ENV 값을 local, development, production으로 각각 나누어 의도한 바에 따라 .env파일을 분기하여 사용하고 싶었다
시행착오
- process.env 환경변수를 vue.파일의 script 태그 안에서 콘솔로 로그를 찍으니 계속 undefined를 얻었다.. → client side에서는 process.env를 사용 할 수 없다는 사실을 모르고 있었다. 알고보니 process.env는 server side에서만 사용이 가능했고, clientside에서도 활용이 가능하게 하기 위해 nuxt에서는 nuxt.config.ts 파일 안에 config 설정을 따로 두고 있었다.
- cmd 에서 환경변수를 set하는 방법을 몰라서 한참을 헤맸다. package.json 의 scripts 부분 안에 있는 명령어들을 지정할 때이런 방식으로 환경변수를 셋팅 하니 잘 동작했다.
- SET 환경변수명=값 & nuxt build
- SET NODE_ENV를 변경해도 저절로 .env 파일을 찾아가지 못했다. 예전 Vue CLI를 이용해서 프로젝트를 생성했을때는 뒤에 --mode local 이런 방식으로 지정하면 .env.local 파일의 변수값을 바라보게 자동으로 셋팅이 되었는데, Nuxt3는 그렇게 되지 않았고const phase = process.env.PHASE!!주의할 점!!따라서 nuxt.config.ts 안에서 process.env값을 runtimeConfig로 정의하여 컴포넌트 안에서 사용해야한다.
- nuxt에서는 process.env 값을 component안에서 console로 찍어 확인하면 nuxt.config.ts 안에서의 process.env 값과 다르다.
- require(’dotenv’).config({path:./.env${phase}})
- 해결방법으로 스크립트에 PHASE라는 환경변수값을 셋팅하고, 그값을 찾아와 nuxt.config.ts 파일 에서 dotenv의 파일 path값을 동적으로 바꿔주었다. ex) SET PHASE=local&&nuxi dev
'프론트엔드 > vue.js' 카테고리의 다른 글
[Nuxt3] Nuxt3가 지원하는 렌더링 방식 (0) | 2022.05.09 |
---|---|
[Nuxt3] Nuxt3 features 설명 (0) | 2022.05.03 |
[Nuxt3] Nuxt3 디렉토리 설명 (0) | 2022.05.03 |
[vue.js / Nuxt] Nuxt 기초 (1)라우팅, SSR, SSG (0) | 2022.04.13 |
ChunkLoadError 해결기 (1) 문제점 파악 및 테스트 과정 (0) | 2022.03.31 |