Proyek saya didasarkan pada aplikasi create-react-app . npm start
atau yarn start
secara default akan menjalankan aplikasi pada port 3000 dan tidak ada opsi untuk menentukan port di package.json.
Bagaimana saya bisa menentukan port pilihan saya dalam kasus ini? Saya ingin menjalankan dua proyek ini secara bersamaan (untuk pengujian), satu di port 3005
dan lainnya3006
next -p 3005
jika orang lain jatuh di sini mencari hal yang sama.Jawaban:
Jika Anda tidak ingin mengatur variabel lingkungan , opsi lain adalah memodifikasi
scripts
bagian dari package.json dari:untuk
Linux (diuji pada Ubuntu 14.04 / 16.04) dan MacOS (diuji oleh @ aswin-s pada MacOS Sierra 10.12.4):
atau (mungkin) solusi yang lebih umum oleh @IsaacPak
Solusi Windows @JacobEnsor
cross-env lib bekerja di mana saja. Lihat jawaban Aguinaldo Possatto untuk detailnya
Pembaruan karena popularitas jawaban saya: Saat ini saya lebih suka menggunakan variabel lingkungan yang disimpan dalam
.env
file (berguna untuk menyimpan set variabel untukdeploy
konfigurasi yang berbeda dalam bentuk yang mudah dan dapat dibaca). Jangan lupa untuk menambahkan*.env
ke dalam.gitignore
jika Anda masih menyimpan rahasia Anda di.env
file. Berikut adalah penjelasan mengapa menggunakan variabel lingkungan lebih baik dalam kebanyakan kasus. Berikut ini penjelasan mengapa menyimpan rahasia di lingkungan adalah ide yang buruk.sumber
"start": "set PORT=3005 && react-scripts start"
"start": "export PORT=3006 react-scripts start"
berfungsi untuk saya"start": "export PORT=3001 && react-scripts start"
Yang ini bekerja untuk saya di Ubuntu 16cross-env
adalah ketika Anda memiliki beberapa pengembang yang bekerja pada sistem yang berbeda. Mungkin beberapa lebih suka MAC, dan beberapa yang lain lebih suka Windows. Atau, skenario lain, semua pengembang menggunakan Windows tetapi Anda ingin menambahkan Variabel Lingkungan yang akan dijalankan pada server CI / CD Anda yang menjalankan Ubuntu. Saya harap itu membantu.Berikut ini cara lain untuk menyelesaikan tugas ini.
Buat
.env
file di root proyek Anda dan tentukan nomor port di sana. Suka:sumber
.env
. Dalam kasus mereka, mereka merekomendasikan penggunaan.env.local
yang Anda tidak harus memeriksa kontrol sumber, sehingga Anda dapat memeriksa.env
kontrol sumber dengan aman . Jadi saran yang sama masih berlaku.Anda bisa menggunakan cross-env untuk mengatur port, dan itu akan berfungsi pada Windows, Linux dan Mac.
lalu di package.json tautan awal bisa seperti ini:
sumber
Anda dapat menentukan variabel lingkungan bernama
PORT
untuk menentukan port tempat server akan berjalan.sumber
"start": "set PORT=3005 react-scripts start"
hanya mengatur port tetapi tidak menjalankan aplikasi"start": "set PORT=3005 && react-scripts start"
Untuk orang-orang windows saya, saya menemukan cara untuk mengubah port ReactJS untuk berjalan pada port yang Anda inginkan. Sebelum menjalankan server pergi ke
Di dalamnya, cari baris di bawah ini dan ubah nomor port ke port yang Anda inginkan
Dan Anda baik untuk pergi.
sumber
node_modules
direktori akan terhapus saat paket diperbarui. Mungkin lebih baik menggunakan salah satu jawaban lain.Buat file dengan nama
.env
di direktori utama di sampingpackage.json
dan aturPORT
variabel ke nomor port yang diinginkan.Sebagai contoh:
.env
sumber
Cukup perbarui sedikit di
webpack.config.js
:lalu jalankan
npm start
lagi.sumber
Di Anda
package.json
, buka skrip dan gunakan--port 4000
atauset PORT=4000
, seperti dalam contoh di bawah ini:package.json
(Windows):package.json
(Ubuntu):sumber
Ini berfungsi pada Windows dan Linux
package.json
tetapi Anda lebih suka membuat .env dengan PORT = 3006 tertulis di dalamnya
sumber
'PORT' is not recognized as an internal or external command, operable program or batch file.
Mengubah file package.json saya
"start": "export PORT=3001 && react-scripts start"
bekerja untuk saya juga dan saya menggunakan macOS 10.13.4sumber
Untuk meringkas, kami memiliki tiga pendekatan untuk mencapai ini:
Yang paling portabel akan menjadi pendekatan terakhir. Tetapi seperti yang disebutkan oleh poster lain, tambahkan .env ke .gitignore agar tidak mengunggah konfigurasi ke repositori sumber publik.
Lebih detail: artikel ini
sumber
Anda dapat menemukan konfigurasi port default saat memulai aplikasi Anda
gulir ke bawah dan ubah port ke apa pun yang Anda inginkan
Semoga ini bisa membantu Anda;)
sumber
yarn eject
terlebih dahulu.Coba ini:
sumber
Akan menyenangkan untuk dapat menentukan port selain
3000
, baik sebagai parameter baris perintah atau variabel lingkungan.Saat ini, prosesnya cukup melibatkan:
npm run eject
scripts/start.js
dan temukan / ganti3000
dengan port apa pun yang ingin Anda gunakanconfig/webpack.config.dev.js
dan lakukan hal yang samanpm start
sumber
Di Windows itu bisa dilakukan dengan 2 cara.
Di bawah "\ node_modules \ react-scripts \ scripts \ start.js", cari "DEFAULT_PORT" dan tambahkan nomor port keinginan.
Contoh: const DEFAULT_PORT = parseInt (process.env.PORT, 10) || 9999;
Dalam package.json, tambahkan baris di bawah ini. "start": "atur PORT = 9999 && mulai-skrip reaksi" Kemudian mulailah aplikasi menggunakan start NPM. Ini akan memulai aplikasi di port 9999.
sumber
Bagaimana dengan memberikan nomor port sambil menjalankan perintah tanpa perlu mengubah apa pun dalam kode aplikasi atau file lingkungan Anda? Dengan begitu dimungkinkan menjalankan dan melayani basis kode yang sama dari beberapa port yang berbeda.
Suka:
$ export PORT=4000 && npm start
Anda dapat meletakkan nomor port yang Anda suka sebagai pengganti nilai contoh di
4000
atas.sumber
Jika Anda sudah melakukannya
npm run eject
, buka skrip / start.js dan ubah port inconst DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;
(3000 dalam hal ini) ke port apa pun yang Anda inginkan.sumber
Mengubah port default di React-App
Pergi ke baris ini:
Ubah nomor port dengan nomor port Anda
Sebagai contoh:
Simpan dan keluar
sumber
npm/yarn install
. Mengubah filenode_modules
harus dihindari.