내 프로젝트는 create-react-app 기반입니다 . npm start
또는 yarn start
기본적으로 포트 3000 에서 응용 프로그램을 실행 하며 package.json에 포트를 지정하는 옵션이 없습니다.
이 경우 원하는 포트를 어떻게 지정합니까? 이 프로젝트 중 두 개를 동시에 테스트하기 위해 포트 하나 3005
와 다른 하나는3006
내 프로젝트는 create-react-app 기반입니다 . npm start
또는 yarn start
기본적으로 포트 3000 에서 응용 프로그램을 실행 하며 package.json에 포트를 지정하는 옵션이 없습니다.
이 경우 원하는 포트를 어떻게 지정합니까? 이 프로젝트 중 두 개를 동시에 테스트하기 위해 포트 하나 3005
와 다른 하나는3006
답변:
환경 변수 를 설정하지 않으려는 경우 또 다른 옵션은 다음에서 scripts
package.json 부분 을 수정하는 것 입니다.
"start": "react-scripts start"
에
Linux (우분투 14.04 / 16.04에서 테스트 ) 및 MacOS (MacOS Sierra 10.12.4에서 @ aswin-s에서 테스트) :
"start": "PORT=3006 react-scripts start"
또는 @IsaacPak의 더 일반적인 솔루션
"start": "export PORT=3006 react-scripts start"
Windows @JacobEnsor 솔루션
"start": "set PORT=3006 && react-scripts start"
cross-env lib 는 모든 곳에서 작동합니다. 자세한 내용은 Aguinaldo Possatto 답변 을 참조하십시오
내 대답의 인기로 인해 업데이트 : 현재 .env
파일에 저장된 환경 변수를 사용하는 것을 선호 합니다 ( deploy
편의하고 읽을 수있는 형태 로 다른 구성에 대한 변수 세트를 저장하는 데 유용합니다 ). 추가하는 것을 잊지 마십시오 *.env
으로 .gitignore
당신은 여전히 당신의 비밀을 저장하는 경우 .env
파일. 다음 은 환경 변수를 사용하는 것이 가장 좋은 이유에 대한 설명입니다. 다음 은 환경에 비밀을 저장하는 것이 좋지 않은 이유에 대한 설명입니다.
"start": "set PORT=3005 && react-scripts start"
"start": "export PORT=3006 react-scripts start"
나를 위해 일했다
"start": "export PORT=3001 && react-scripts start"
우분투 16에서 나를 위해 일한이 하나
cross-env
여러 개발자가 다른 시스템에서 작업 하는 경우와 같은 유스 케이스 가 있습니다. MAC을 선호하는 사람도 있고 Windows를 선호하는 사람도 있습니다. 또는 다른 시나리오에서는 모든 개발자가 Windows를 사용하지만 Ubuntu를 실행하는 CI / CD 서버에서 실행될 환경 변수를 추가하려고합니다. 도움이 되길 바랍니다.
이 작업을 수행하는 다른 방법이 있습니다.
.env
프로젝트 루트에 파일을 작성하고 포트 번호를 지정하십시오. 처럼:
PORT=3005
.env
. 이들의 경우 .env.local
소스 제어를 안전하게 체크인 할 수 있도록 소스 제어를 체크인하지 않아야하는 사용 을 권장 합니다 .env
. 따라서 여전히 동일한 조언이 적용됩니다.
PORT
서버가 실행될 포트를 지정하기 위해 명명 된 환경 변수를 지정할 수 있습니다 .
$ export PORT=3005 #Linux
$ $env:PORT=3005 # Windows - Powershell
"start": "set PORT=3005 react-scripts start"
포트를 설정했지만 앱을 실행하지 않습니다
"start": "set PORT=3005 && react-scripts start"
내 Windows 사람들은 ReactJS 포트를 원하는 포트에서 실행하도록 변경하는 방법을 발견했습니다. 서버를 실행하기 전에
node_modules/react-scripts/scripts/start.js
여기에서 아래 줄을 검색하고 포트 번호를 원하는 포트로 변경하십시오.
var DEFAULT_PORT = process.env.PORT || *4000*;
그리고 당신은 갈 수 있습니다.
node_modules
패키지가 업데이트되면 디렉토리 내에서 변경 한 내용이 사라집니다. 아마도 다른 답변 중 하나를 사용하는 것이 가장 좋습니다.
.env
기본 디렉토리에 이름 외에 이름 을 가진 파일을 작성하고 variable을 원하는 포트 번호로 package.json
설정 PORT
하십시오.
예를 들면 다음과 같습니다.
.env
PORT=4200
에서 아래 예와 같이 package.json
스크립트로 이동하여 --port 4000
또는을 사용 set PORT=4000
하십시오.
package.json
(Windows) :
"scripts": {
"start": "set PORT=4000 && react-scripts start"
}
package.json
(우분투) :
"scripts": {
"start": "export PORT=4000 && react-scripts start"
}
이것은 Windows와 Linux 모두에서 작동합니다
package.json
"scripts": {
"start": "(set PORT=3006 || export PORT=3006) && react-scripts start"
...
}
그러나 PORT = 3006으로 작성된 .env를 작성하는 것이 좋습니다.
'PORT' is not recognized as an internal or external command, operable program or batch file.
내 package.json 파일을 변경하면 "start": "export PORT=3001 && react-scripts start"
나에게도 효과가 있었고 macOS 10.13.4에 있습니다.
앱을 시작할 때 기본 포트 구성을 찾을 수 있습니다
yourapp / scripts / start.js
아래로 스크롤하여 원하는 포트로 변경하십시오
const DEFAULT_PORT = parseInt (process.env.PORT, 10) || 4000;
이것이 당신을 도울 수 있기를 바랍니다.)
yarn eject
먼저 해야합니다 .
3000
명령 줄 매개 변수 또는 환경 변수로 이외의 포트를 지정할 수 있으면 좋을 것 입니다.
현재 프로세스는 매우 복잡합니다.
npm run eject
scripts/start.js
및 찾기 / 바꾸기3000
config/webpack.config.dev.js
하고 똑같이하십시오npm start
Windows에서는 두 가지 방법으로 수행 할 수 있습니다.
"\ node_modules \ react-scripts \ scripts \ start.js"아래에서 "DEFAULT_PORT"를 검색하고 원하는 포트 번호를 추가하십시오.
예 : const DEFAULT_PORT = parseInt (process.env.PORT, 10) || 9999;
package.json에서 아래 줄을 입력하십시오. "start": "set PORT = 9999 && react-scripts start"그런 다음 NPM start를 사용하여 응용 프로그램을 시작하십시오. 9999 포트에서 응용 프로그램을 시작합니다.
React-App에서 기본 포트 변경
cd /your/project/project_name/node_modules/react-scripts/scripts/
vim start.js
이 줄로 가십시오 :
// Tools like Cloud9 rely on this.
const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;
const HOST = process.env.HOST || '0.0.0.0';
포트 번호로 포트 번호를 변경하십시오
const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;
예를 들면 다음과 같습니다.
const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3100;
저장하고 종료
npm/yarn install
. 파일 변경 node_modules
은 피해야합니다.
next -p 3005
경우 다른 사람이 같은 것을 찾고 여기에 빠지면 사용할 것입니다.