코드/Npm

[Npm] dotenv, cross-env

Yeah-Panda 2024. 1. 10. 09:39

application 의 초기화 시점에는 다양한 환경 변수가 필요 할수 있습니다.

예를 들어 APPLICATION KEY등 서비스 로직과는 약간 다른 범위의 설정값이 필요한 경우가 많습니다.

.env 파일을 생성하여 필요한 값들을 넣어 주면 됩니다.

platform='mobile'
application_key='123456'
device_version='1.0.1'

 

어떤 강의에서는 node --env-file=.env index.js 형태로 사용하면 된다고 알려 줬지만

실제로는 동작하지 않고 bad option 이라는 오류가 노출되는 상황이 되어 다른 방법으로 설정값을 코드에 적용 했습니다.

// index.js

import 'dotenv/config'

console.log('env value= ', process.env.application_key)
console.log('env value= ', process.env.platform)

 

node index.js 로 정상 동작 확인 됩니다.

 

그리고 빌드시 환경별로 다른 값이 필요하다면 환경마다 빌드 스크립트를 다르게 주는 방법이 좀 더 유용합니다.

예를 들어 각 개발 환경과 실제 서비스 환경 빌드를 아래와 같이 줄수 있습니다.

"start:development": "cross-env envir=development nuxt-ts"
"start:production": "cross-env envir=product nuxt-ts"

 

cross-env 는 사용자 OS별 상이한 경로상의 문제(POSIX) 혹은 환경 변수 접근등을 해결해주는 라이브러리 입니다.

개발자로 하여금 환경 변수에 대한 일관된 코드 처리를 가능하게 해줍니다.