Nuxt.js dotenv로 환경 변수 사용하기
Nuxt.js로 개발을 진행하다 보면 production과 development로 분리하고 싶을 때가 있습니다. 물론 환경 분리는 분리하고 싶을 때 분리하는 게 아닌 저는 필수라고 생각합니다.
환경변수들을 개발용 실제 운영용으로 분리하는 것은 개발자체도 용이하게 해 줄뿐더러 보안상에도 좋습니다.
재사용하는 정보들이나 공개되어서는 안될 정보들(DB URL, 각종 Key 값 등)을 편하게 관리할 수 있습니다.
만약 백엔드와 통신을 하는데 하드코딩으로 API EndPoint를 노출한다던지, 중요한 키값을 노출하게 된다면 제 정보 좀 가져가 주세요~라고 하는 것과 같습니다.
.env 파일이란?
.env파일이나 dotenv파일은 응용 프로그램 환경 변수를 제어하는 간단한 텍스트 구성 파일입니다.
애플리케이션에는 각 환경 사이에 일부 변수를 변경해야 하는 경우가 있습니다.
환경 간의 일반적인 구성 변경에는 URL 및 API 키가 포함될 수 있지만 이것만이 .env파일을 구성한다고는 볼 수 없습니다.
.env파일은 변수명=값의 형태로 되어 있습니다.
변수명은 대문자로 사용합니다. 각 문자 사이에는 underscore( _ )를 통해 구분하게 됩니다.
VARIABLE_NAME = 값
Nuxt.js에서 .env 사용하기
Nuxt.js 환경에서 .env를 사용하여 개발환경을 분리하는 것은 간단합니다.
이미 dotenv모듈을 제공하고 있기 때문에 npm을 통해 설치해줍니다.
$ npm install @nuxtjs/dotenv
dotenv 모듈 등록
모듈 설치 후 nuxt.config.js 파일에서 buildModules에 설치한 dotenv 모듈을 등록해야 합니다.
// nuxt.config.js
buildModules: [
'@nuxtjs/dotenv'
],
.env 파일 생성
위 순서대로 모듈을 등록하셨다면 이제 .env 파일을 사용할 수 있습니다.
저는 프로젝트 최상위 경로에 .env 파일을 만들었습니다.
.env 변수에 접근하기
성공적으로 dotenv 모듈을 설치하고 nuxt.config.js 파일에 등록 및 .env 파일 작성을 완료했다면 .env 변수에 접근이 가능합니다.
테스트이므로 간단히 mounted()에서 콘솔로 .env의 변수 값을 찍어보도록 하겠습니다.
// pages/index.vue
<template>
<div>
</div>
</template>
<script>
export default {
mounted() {
console.log(process.env.TEST_VARIABLE)
}
}
</script>
<style scoped>
</style>
아까 변수에 담았던 Hello가 찍히는 것을 확인할 수 있습니다.
키와 값이 있는 객체에 접근하기
변수=값 구조가 아닌 변수 = 객체의 경우를 알아보겠습니다.
만약 구글에서 여러 개의 키를 받았다고 가정한다면 google이라는 객체 안에 담아둘 가능성이 크기 때문에 알아두는 게 신상에 이롭다고 생각했습니다.
이러한 경우 process.env로 접근하는 방식 말고 env.js라는 파일을 만들어서 사용이 가능합니다.
루트 디렉토리에 .env 파일과 env.js 파일을 생성하여 아래와 같이 작성합니다.
// .env
GOOGLE_API1 = 1234asdf
GOOGLE_API2 = 5678qwer
// env.js
export default {
google: {
googleApiKey1 : process.env.GOOGLE_API1,
googleApiKey2 : process.env.GOOGLE_API2
}
}
다시 index.vue 파일을 아래와 같이 수정합니다.
// pages/index.vue
<template>
<div>
</div>
</template>
<script>
import ENV from '@/env'
export default {
mounted() {
console.log(ENV.google.googleApiKey1)
console.log(ENV.google.googleApiKey2)
}
}
</script>
<style scoped>
</style>
다시 실행해보면 정상적으로 환경변수에 접근이 가능한 것을 확인할 수 있습니다.
환경변수 설정에 대해 공부하다 보니 중간에 문득 이런 생각이 들었습니다.
개발은 혼자 하는 게 아닌데 .env 파일을 git ignore 하게 된다면 다른 개발자들은 어떻게 해당 환경변수의 변수들을 알 수 있을까? 라는 생각을 했습니다.
찾아본 결과 미리 팀에서 안내를 한다던지, .env.example 이라는 파일을 생성하여 변수명은 설정하고 값은 빈 값으로 만들어서 어떤 변수가 필요한지 알 수 있게 하는 방법이 있었습니다.
저도 .env.example 파일을 만들어서 어떤 변수가 필요한지 알 수 있게 하는 방법이 가장 좋을 것 같다고 생각합니다.
혹시나 제 글에 잘못된 내용이 있다면 댓글로 남겨주시면 감사드리겠습니다.
'FE > Nuxt.js' 카테고리의 다른 글
Nuxt.js에서 Vuex Strict Mode (0) | 2021.05.18 |
---|---|
Nuxt.js JavaScript로 사업자번호 유효성 체크 및 하이픈(-) 자동 추가하기 (0) | 2021.05.12 |
Nuxt.js vuex-persistedstate로 화면 새로고침에도 데이터 유지하기 (2) | 2021.05.04 |
Nuxt.js 다음 주소 검색 API 사용하기 (0) | 2021.05.02 |
Nuxt.js Toast Ui Editor 적용 (1) | 2021.04.26 |
댓글