Mon projet est basé sur create-react-app . npm start
ou yarn start
par défaut exécutera l'application sur le port 3000 et il n'y a pas d'option de spécifier un port dans le package.json.
Comment puis-je spécifier un port de mon choix dans ce cas? Je veux exécuter deux de ce projet simultanément (pour les tests), un dans le port 3005
et l'autre est3006
next -p 3005
si quelqu'un d'autre tombe ici à la recherche de la même chose.Réponses:
Si vous ne souhaitez pas définir la variable d'environnement , une autre option consiste à modifier la
scripts
partie de package.json à partir de:à
Linux (testé sur Ubuntu 14.04 / 16.04) et MacOS (testé par @ aswin-s sur MacOS Sierra 10.12.4):
ou (peut être) une solution plus générale par @IsaacPak
Solution Windows @JacobEnsor
cross-env lib fonctionne partout. Voir la réponse d' Aguinaldo Possatto pour plus de détails
Mise à jour en raison de la popularité de ma réponse: Actuellement, je préfère utiliser des variables d'environnement enregistrées dans un
.env
fichier (utile pour stocker des ensembles de variables pour différentesdeploy
configurations sous une forme pratique et lisible). Ne pas oublier d'ajouter*.env
dans.gitignore
si vous stockez encore vos secrets dans les.env
fichiers. Voici l'explication des raisons pour lesquelles l'utilisation de variables d'environnement est préférable dans la plupart des cas. Voici l'explication de pourquoi le stockage de secrets dans l'environnement est une mauvaise idée.la source
"start": "set PORT=3005 && react-scripts start"
"start": "export PORT=3006 react-scripts start"
travaillé pour moi"start": "export PORT=3001 && react-scripts start"
Celui-ci a fonctionné pour moi dans Ubuntu 16cross-env
c'est quand vous avez plusieurs développeurs travaillant sur différents systèmes. Certains préfèrent peut-être les MAC et d'autres préfèrent Windows. Ou, un autre scénario, tous les développeurs utilisent Windows, mais vous voulez ajouter une variable d'environnement qui sera exécutée sur votre serveur CI / CD qui exécute Ubuntu. J'espère que ça aide.Voici une autre façon d'accomplir cette tâche.
Créez un
.env
fichier à la racine de votre projet et indiquez-y le numéro de port. Comme:la source
.env
. Dans leur cas, ils recommandent d'utiliser.env.local
ce que vous ne devriez pas vérifier dans le contrôle de source, afin que vous puissiez vérifier.env
en toute sécurité dans le contrôle de source. Le même conseil s'applique donc toujours.Vous pouvez utiliser cross-env pour définir le port, et cela fonctionnera sur Windows, Linux et Mac.
puis dans package.json, le lien de démarrage pourrait ressembler à ceci:
la source
Vous pouvez spécifier une variable d'environnement nommée
PORT
pour spécifier le port sur lequel le serveur s'exécutera.la source
"start": "set PORT=3005 react-scripts start"
il suffit de définir le port mais ne lance pas l'application"start": "set PORT=3005 && react-scripts start"
Pour mes amis Windows, j'ai découvert un moyen de changer le port ReactJS pour qu'il s'exécute sur n'importe quel port que vous souhaitez.
Dans celui-ci, recherchez la ligne ci-dessous et changez le numéro de port pour votre port souhaité
Et vous êtes prêt à partir.
la source
node_modules
répertoire seront effacées lors de la mise à jour des packages. Il est probablement préférable d'utiliser l'une des autres réponses.Créez un fichier avec un nom
.env
dans le répertoire principalpackage.json
et définissez laPORT
variable sur le numéro de port souhaité.Par exemple:
.env
la source
Mettez à jour un peu dans
webpack.config.js
:puis exécutez à
npm start
nouveau.la source
Dans votre
package.json
, accédez aux scripts et utilisez--port 4000
ouset PORT=4000
, comme dans l'exemple ci-dessous:package.json
(Les fenêtres):package.json
(Ubuntu):la source
Cela fonctionne sur Windows et Linux
package.json
mais vous préférez de préférence créer .env avec PORT = 3006 écrit à l'intérieur
la source
'PORT' is not recognized as an internal or external command, operable program or batch file.
La modification de mon fichier package.json a également
"start": "export PORT=3001 && react-scripts start"
fonctionné pour moi et je suis sur macOS 10.13.4la source
Pour résumer, nous avons trois approches pour y parvenir:
La plus portable sera la dernière approche. Mais comme mentionné par une autre affiche, ajoutez .env dans .gitignore afin de ne pas télécharger la configuration dans le référentiel source public.
Plus de détails: cet article
la source
vous pouvez trouver la configuration de port par défaut au démarrage de votre application
faites défiler vers le bas et modifiez le port comme vous le souhaitez
j'espère que cela peut vous aider;)
la source
yarn eject
abord.Essaye ça:
la source
Ce serait bien de pouvoir spécifier un port autre que
3000
, soit comme paramètre de ligne de commande, soit comme variable d'environnement.À l'heure actuelle, le processus est assez complexe:
npm run eject
scripts/start.js
et trouvez / remplacez3000
par le port que vous souhaitez utiliserconfig/webpack.config.dev.js
et faire de mêmenpm start
la source
Sous Windows, cela peut se faire de 2 manières.
Sous "\ node_modules \ react-scripts \ scripts \ start.js", recherchez "DEFAULT_PORT" et ajoutez le numéro de port souhaité.
Par exemple: const DEFAULT_PORT = parseInt (process.env.PORT, 10) || 9999;
Dans package.json, ajoutez la ligne ci-dessous. "start": "set PORT = 9999 && react-scripts start" Ensuite, démarrez l'application en utilisant NPM start. Il démarrera l'application dans le port 9999.
la source
Que diriez-vous de donner le numéro de port tout en invoquant la commande sans avoir besoin de changer quoi que ce soit dans votre code d'application ou vos fichiers d'environnement? De cette façon, il est possible d'exécuter et de servir la même base de code à partir de plusieurs ports différents.
comme:
$ export PORT=4000 && npm start
Vous pouvez mettre le numéro de port que vous aimez à la place de l'exemple de valeur
4000
ci-dessus.la source
Dans le cas où vous l'avez déjà fait
npm run eject
, allez dans scripts / start.js et changez le port enconst DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;
(3000 dans ce cas) sur le port que vous voulez.la source
Changer le port par défaut sur React-App
Allez sur cette ligne:
Changez le numéro de port avec votre numéro de port
Par exemple:
Sauvegarder et quitter
la source
npm/yarn install
. La modification des fichiersnode_modules
doit être évitée.