먼저 코드에 구성 파일을 사용하여 다양한 환경에 대한 구성 정보를 저장합니다. 예를 들어 아래와 같이 config.js라는 파일을 만들고 그 안에 다양한 환경에 대한 구성 항목을 정의할 수 있습니다:
// config.js
module.exports = {
"dev": {
port: 3000,
database: 'dev_db',
// 다른 개발 환경을 위한 구성 항목
},
"stg": {
port: 4000,
database: 'stg_db',
// 다른 stg 환경을 위한 구성 항목
},
"prd": {
port: 5000,
database: 'prd_db',
// 다른 prd 환경을 위한 구성 항목
}
};
다음으로 현재 환경에 따라 환경 변수를 설정합니다. 터미널에서 다음 명령어를 실행하여 환경 변수를 설정할 수 있습니다(예: NODE_ENV):
//Windows의 경우:
set NODE_ENV=dev && nodemon app.js
//macOS/Linux의 경우:
export NODE_ENV=dev
그런 다음 시작 스크립트인 app.js에서 사용자 환경에 해당하는 구성 항목을 구성 파일에 도입하여 사용합니다. 팁: npm i cross-env 그렇지 않으면 config[env]는 정의되지 않은 값을 사용합니다:
// app.js
const config = require('./config');
// 현재 환경 가져오기
const env = process.env.NODE_ENV || 'dev';
// 환경에 해당하는 구성 파일의 구성 항목 사용
const port = config[env].port;
const database = config[env].database;
// 여기에서 구성 항목을 사용하여 프로그램을 시작합니다.
// ...
마지막으로 package.json의 스크립트 섹션에서 다양한 환경에 대한 시작 명령을 정의할 수 있습니다. npm i cross-env 서로 다른 시스템에서 서로 다른 환경의 문제를 부드럽게 해결합니다:
{
"scripts": {
"dev": "cross-env NODE_ENV=dev nodemon app.js",
"stg": "cross-env NODE_ENV=stg nodemon app.js",
"prd": "cross-env NODE_ENV=prd nodemon app.js",
}
}
이제 다음 명령을 실행하여 다른 환경에서 프로그램을 시작할 수 있습니다:
npm run dev # 개발 환경 시작
npm run stg # stg 환경 시작
npm run prd # prd 환경 시작
