.env
파일을 이용하여 환경 변수를 설정하고, 다양한 환경에서 다른 값을 가지고 프로그램을 실행할 수 있다.
일반적으로 아래와 같은 .env
파일들을 생성해 사용한다.
.env
: 기본 환경 변수 파일.env.local
: local 환경에서만 실행.env.development
: 개발 환경에서만 실행.env.development.local
: 개발 환경에서만 로드되는 local 에서만 실행.env.production
: 프로덕션 환경에서만 로드되는 환경 변수 파일.env.production.local
: 프로덕션 환경에서만 로드되는 로컬 환경 변수 파일
💡
.local
이 붙으면 일반적으로 버전 관리에서 자동 제외되며, 로컬에서만 필요한 설정을 저장 한다.
Next.js에서는 환경 변수를 로드할 때 특정 우선순위를 따른다. 우선순위는 다음과 같다.
.env.local
.env.[MODE].local
.env.[MODE]
.env
[MODE]
에 들어올 수 있는 값은 다음과 같다.
production (start, build시 자동 지정)
development (dev시 자동 지정)
test (test시 자동 지정)
특정 env 파일 지정
보통 위와 같이 mode가 자동 지정되는데, build를 하는데 production.env
파일이 아닌 development.env
파일에 있는 값을 사용하고 싶을 때가 있다.
다양한 방법이 있지만 env-cmd
라는 라이브러리를 이용해 다음과 같이 사용할 수 있다.
"scripts": {
"build:dev": "env-cmd -f .env.development.local next build",
},
yarn build:dev