yarn add dotenv
npm install --save dotenv
프로젝트 루트경로에 (.env)파일을 생성하고 다음과 같이 작성한다.
//.env
SERVER_PORT=3000
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=YOU_Password
API_KEY=YOU_API_KEY
변수명 = 값 형태를 갖고 있다.
프로젝트 상단에 .env를 불러와 준다.
// index.js
require('dotenv').config();
console.log(process.env.API_KEY) //YOU_API_KEY
위 결과처럼 .env를 사용하여 하드코딩 하지않고, 숨기고 싶은 값들을 사용할수 있다.
React에서 위 방법과 모든것이 다 똑같지만 .env에서 변수명이 REACT_APP로 시작되게 작성하면 된다. 만약 REACT_APP를 작성하지 않고 사용하면 무시되게 된다.
//.env
REACT_APP_API_KEY=YOU_API_KEY
DB_USER=root
사용 방법은 위와 같다.
// index.js
require('dotenv').config();
console.log(process.env.REACT_APP_API_KEY) //YOU_API_KEY
console.log(process.env.DB_USER) //undefind
환경변수에 REACT_APP 이라는 접두사를 둬야한다는건 모든 시스템 환경변수와 이름 중복을 막기 위한 것이라 납득이 가나
const env = dotenv.config({path: '../.env', encoding: 'utf8'}).parsed;
const {REACT_APP_API_URL, REACT_APP_API_KEY} = env;
이런형태로 .env 파일을 destructuring 할 수 없는건 아쉽네요.
노드에선 가능했는데 말이죠..