백, 프론트 서버 동시 실행 시 한쪽을 무시해요
728x90
SMALL

[1] npm run start --prefix client exited with code 0 

node.js, express, react.js 라이브러리 사용

 

문제

 

백 서버와 프론트 서버를 동시에 실행할 수 있게

concurrently package 사용 설정으로

 

client/package.json

"start": "react-scripts start",

 

server/package.json

scripts": {
    "start": "node server/index.js",
    "backend": "nodemon server/index.js",
	"dev": "concurrently \"npm run backend\" \"cd ./client && npm run start\""
    }

 

npm run dev를 하면

 

[1] npm run start --prefix client exited with code 0 - 가 콘솔에 뜨면서

client의 npm run start가 무시당한다.

 

즉 프론트 서버가 돌아가지 않았다.

 

 

백 서버를 먼저 실행하고, 프론트 서버를 실행하면,

해당 포트가 이미 사용 중이라는 문구와 함께, 다른 포트에서 프론트 서버를 실행하겠냐는 권유를 볼 수 있었다.

 

 

 

 

이유

 

https://ecsimsw.tistory.com/entry/Webpack-dev-server%EC%9D%98-%ED%8F%AC%ED%8A%B8%EA%B0%80-%EB%B0%94%EB%80%90%EB%8B%A4

 

Webpack dev server의 포트가 자동으로 바뀐다? / Vue-Cli와 portfinder

프론트 앱 서버의 포트가 자동으로 변경된다? 되게 신기한 경험을 했다. Vue (webpack dev server)와 Spring boot (톰캣)를 띄웠는데 이 둘을 실행하는 순서에 따라 webpack dev server가 다른 포트로 뜨고, 작동.

www.ecsimsw.com

 

이 글을 보고 해답을 얻었다.

 

 

실제로 백엔드 서버를 실행하면

 

npm run backend

 

 

 

IPv6를 사용하고 있다.

 

 

 

npm run start 

 

반면 IPv4를 사용한다.

 

 

 

 IPv6가 IPv4보다 우선 순위를 갖기 때문에 내가 사용한 3000번 포트에서 react-scripts start를 실행할 수 없는 것이다.

 

 

 

해결

client의 package.json에서

"start": "export PORT=3001 && react-scripts start",
 
로 실행 포트를 변경하였다.

 

728x90
LIST