root의 ecosystem.config.js 를 생성해서 pm2로 일괄 관리
module.exports = {
apps: [
{
// pm2로 실행한 프로세스 목록에서 이 애플리케이션의 이름으로 지정될 문자열
name: "client",
// pm2로 실행 스트립트
script: "cd client && yarn start",
// 개발환경시 적용될 설정 지정
env: {
"PORT": 4000,
"NODE_ENV": "development"
},
// 배포환경시 적용될 설정 지정
env_production: {
"PORT": 8080,
"NODE_ENV": "production"
}
},{
name : "server",
script : "cd server && yarn start",
// 개발환경시 적용될 설정 지정
env: {
"PORT": 4100,
"NODE_ENV": "development"
},
// 배포환경시 적용될 설정 지정
env_production: {
"PORT": 8180,
"NODE_ENV": "production"
}
}
]
};
실행 pm2 start ecosystem.config.js
참고
https://github.com/Unitech/pm2/issues/3975
https://stackoverflow.com/questions/11580961/sending-command-line-arguments-to-npm-script
개발 끝나고 배포할 경우 (서버측 디렉토리에 포함)
클라이언트 빌드 후
npm run build
node.js 서버측에 static 디렉토리 만들어주고, 클라이언트 파일 넣은 후 등록해 줌
app.use(express.static('public'));