create-react-app
で作成したプロジェクトの react-scripts start
のポート番号を3000番から変えてみます。
検証した環境
1 | react-scripts | 3.4.1 |
react-scripts start時のポート番号を変える
結論としてはPORT=3678 react-scripts start
のように
環境変数 PORT
を指定します。
react-scripts start -p <ポート番号>
のようなことは出来ません。
react-scripts start
はデフォルトだと「localhost:3000」で起動されます。
ここでは「localhost:3678」に変更してみます。
やり方として、
- npm-scriptsで指定
- .nevで指定
の2つの方法を記載します。
どちらも環境変数 PORT
を指定する、というところでは一緒のことをやっているのでプロジェクトに合わせて設定して下さい。
1. npm-scriptsで直接指定
react-scripts start
の前に環境変数 PORT
を設定
package.json
"scripts": {
"start": "PORT=3678 react-scripts start",
・・・
シンプルに使いたい、試したいといったケースの場合こっちなイメージ
2. .envで指定
.envに環境変数 PORT
を作成
.env
PORT=3678
react-scripts start
はデフォルトで「.env」を読み込んでくれるのでこれでポート番号3678でlocalhostが起動します!
.envはgitで管理しなくなるため、「.env.sample」のようなファイルにも書く必要が出てきて手間がかかります。
しかし、以下のような「.env.development」「.env.staging」など複数の環境変数を用いて読み込む環境変数を変えている場合、
package.json
"scripts": {
"start:dev": "dotenv -e .env react-scripts start",
"start:stg": "dotenv -e .env.staging react-scripts start",
・・・
.envに書いてしまった方がnpm-scriptsもごちゃごちゃしなくていいかなと思います。 .envで環境変数を一言管理する、というルール決めも出来ますし。