개발이야기/Node&Nest

Apps로 구성한 nest.js를 한번에 실행시키기

Roslyn 2024. 2. 2. 10:14
반응형

Apps로 구성된 nest.js에 프로젝트는 기본적으로 다음과 같은 명령으로 실행시킵니다.

npm run start:dev targetproject

 

문제는 이런 식으로는 한번에 하나씩만 실행이 가능하니 여러 프로젝트를 동시에 테스트할 생각이라면 다음과 같은 배치 파일을 만들어 놓으면 편할 것입니다.

 

먼저 pm2를 설치해 줍니다.  동시 실행하여 전체 프로세스를 테스트하기 위함이므로, 일괄 실행을 위해 pm2로 매니징을 할 것입니다.

 

npm install -g pm2

 

이번에는 batch 파일을 만들어서 일괄로 실행시키고, 일괄로 중지하도록 해보겠습니다.

 

다음과 같이 3개의 batch 파일을 만들어 줍니다.

먼저 start.bat 파일입니다.

@echo off
echo compiling
start /B npm run build common
start /B npm run build invoices
start /B npm run build members
start /B npm run build products

echo run pm2
start /B pm2 start dist/apps/common/main.js --name common
start /B pm2 start dist/apps/invoices/main.js --name invoices
start /B pm2 start dist/apps/members/main.js --name members
start /B pm2 start dist/apps/products/main.js --name products

 

npm run 명령은 실행이 될 때까지 다음 명령실행을 막기 때문에 그냥 작성하면 첫번째 npm run만 실행되고 프로세스가 종료되어 버립니다.

start /B 명령을 사용하여 비동기적으로 실행되도록 해줍니다.

 

다음은 일괄로 중지할 수 있도록 stop.bat 파일을 만들어 줍니다.

@echo off
echo stop...
start /B pm2 stop common
start /B pm2 stop invoices
start /B pm2 stop members
start /B pm2 stop products

 

이제 cmd 창에서 start.bat 명령을 입력하면 일괄로 실행이 되고, 이를 pm2 list 명령으로 확인해 볼 수 있습니다.

또한 stop.bat 명령으로 일괄 중지가 됩니다.

다음은 clear.bat 파일을 만들어 줍니다.

 

@echo off
echo erase...
start /B pm2 delete common
start /B pm2 delete invoices
start /B pm2 delete members
start /B pm2 delete products

 

이제 clear.bat 명령을 실행시켜서, pm2에 등록된 프로세스들을 모두 삭제할 수 있습니다.

개별적으로 실행해서 테스트할 때는 원래대로 npm run start로 테스트를 하고, 전체적으로 실행해서 테스트하거나, front를 연결해보고자 할 때는 start.bat 로 손쉽게 테스트할 수 있습니다.

반응형