.env를 이용한 Vue 배포 분기
프로젝트를 진행하면서 용도별로 분기를 하여 배포를 한다. QA에서 사용할 용도, 개발 단계에서 사용할 용도, 실제 운영으로 사용하는 용도등 방향은 다양하다.
단순히 환경변수에서 지정한 NODE_ENV
를 이용한 분기는 매우 불편하다. 한두개의 분기 포인트면 몰라도, 여러개로 늘어나면 if문의 압박을 견딜 수 없게 된다. 그래서 나는 주로 파일을 이용한 분기를 좋아한다.
dotenv
를 이용하면 매우 쉽게 처리할 수 있다. 여기서 하나의 방법을 소개해볼 생각이다. --mode
라는 알규먼트를 이용해볼 생각이다.
"scripts": { "build:prod": "export NODE_ENV=production && vue-cli-service build --mode production", "build:dev": "export NODE_ENV=development && vue-cli-service build --mode development", "build:stg": "export NODE_ENV=development && vue-cli-service build --mode staging" }
빌드 실행구문을 위처럼 분리를 하고, 각 구문에 맞춰서 .env 파일들을 추가한다.
.env.production
, .env.development
, .env.staging
이 파일들을 root 경로에 추가했다. 이 후 각 환경변수들을 찍어보면 아래와 같이 각 파일로 접근을 한다.
console.log(process.env.ANY_ENVIRMENT_VALUE) // build:prod -> production // build:dev -> development // build:stg -> staging
이렇게 각 환경변수 파일을 구성하여 각 파일들을 공유하면, Git의 브런치를 늘릴 필요도 없다.
💡 하지만 여기서 더 좋은 방법은 언제나 존재한다. 실제 필자가 프로젝트를 구성하는 방법은 다음에 소개해보겠다.