티스토리 뷰
환경변수에는 DB 정보와 같이 특정(개발환경, 스테이지, production)환경에서 외부로 유출되지않아야하는 설정들을 담습니다.
그 외 환경적으로 변화될 수 있는 변수들 중 소스코드 외부에서 관리하고 싶은
Node.js에서 환경변수 설정하는 방법 중 dotenv 라이브러리를 통해 설정하는 방식에 대해 브리핑하겠습니다.
dotenv 라이브러리(https://www.npmjs.com/package/dotenv)를 통해 .env 혹은 .env.development 등 환경설정 정보를 담은 파일들을 등록해서 main 파일에서 환경변수를 서버가 시작될 때 등록해서 쓰는 방법을 사용해보았습니다.
.env
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=
server.js
const path = require('path');
const dotenv = require('dotenv');
if (process.env.NODE_ENV === 'develop') {
dotenv.config({path: path.join(__dirname, '.env.development')});
} else if (process.env.NODE_ENV === 'production') {
dotenv.config({path: path.join(__dirname, '.env.production')});
}
package.json
"scripts": {
"build:develop": "NODE_ENV=develop next build",
"build:production": "NODE_ENV=production next build",
"start:develop": "PORT=8080 NODE_ENV=develop node server.js",
"start:production": "PORT=8080 NODE_ENV=production node server.js",
"start:storybook": "start-storybook -p 9009 -s public",
"build:storybook": "build-storybook -s public"
}
package.json 에서 NODE_ENV 값을 develop 과 production으로 맞추어 npm run start:develop 명령어를 실행했는데,
warn - You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. https://err.sh/next.js/non-standard-node-env
'Node.js' 카테고리의 다른 글
PM2 vs Docker logs (0) | 2020.09.30 |
---|---|
pm2 (0) | 2020.08.30 |