718 votes

Comment spécifier un port pour exécuter un projet basé sur create-react-app ?

Mon projet est basé sur create-react-app . npm start ou yarn start par défaut, l'application sera exécutée sur port 3000 et il n'y a pas d'option pour 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 exemplaires de ce projet simultanément (pour les tests), l'un dans le port 3005 et l'autre est 3006

14 votes

Je mentionne rapidement que pour les projets Next.js, vous utiliserez simplement next -p 3005 si quelqu'un d'autre tombe ici à la recherche de la même chose.

1242voto

El Ruso Points 1879

Si vous ne voulez pas définir l'option variable d'environnement une autre option consiste à modifier l scripts partie de package.json de :

"start": "react-scripts start"

à

Linux (testé sur Ubuntu 14.04/16.04) et MacOS (testé par @aswin-s sur MacOS Sierra 10.12.4) :

"start": "PORT=3006 react-scripts start"

ou (peut-être) une solution plus générale par @IsaacPak

"start": "export PORT=3006 react-scripts start"

Windows La solution @JacobEnsor

"start": "set PORT=3006 && react-scripts start"

librairie multi-env fonctionne partout. Voir Aguinaldo Possatto réponse pour plus de détails

Mise à jour en raison de la popularité de ma réponse : Actuellement, je préfère utiliser les variables d'environnement enregistrées dans .env (utile pour stocker des ensembles de variables pour des deploy sous une forme pratique et lisible). N'oubliez pas d'ajouter *.env en .gitignore si vous stockez toujours vos secrets dans .env des fichiers. Ici est l'explication de la raison pour laquelle l'utilisation des variables d'environnement est meilleure dans la plupart des cas. Ici est l'explication de pourquoi stocker des secrets dans l'environnement est une mauvaise idée.

65 votes

Pour Windows : "start": "set PORT=3005 && react-scripts start"

7 votes

Pour ubuntu : "start": "export PORT=3006 react-scripts start" a fonctionné pour moi

0 votes

Pour Windows, définir PORT=3005 && react-scripts start a fonctionné pour moi :)

488voto

Voici une autre façon d'accomplir cette tâche.

Créer un .env à la racine de votre projet et spécifiez le numéro de port à cet endroit. Par exemple :

PORT=3005

7 votes

L'utilisation d'un fichier .env est prise en charge d'emblée par create-react-app. Veillez simplement à ne pas enregistrer le fichier .env dans le contrôle de la source si vous y placez des informations sensibles.

30 votes

Il s'agit de la méthode décrite dans le create-react-app README.md

1 votes

@Don Cela semble un peu confus. Les gars de FB recommandent le contraire... github.com/facebookincubator/create-react-app/blob/master/

68voto

Vous pourriez utiliser cross-env pour définir le port, et il fonctionnera sous Windows, Linux et Mac.

yarn add -D cross-env

alors dans package.json le lien de démarrage pourrait être comme ceci :

"start": "cross-env PORT=3006 react-scripts start",

0 votes

C'est exactement ce dont j'avais besoin. Quelque chose qui fonctionne bien sur la plupart des plates-formes courantes, par exemple, mon installation à la maison est sous Windows et au travail sous Mac.

42voto

Harshil Lodhi Points 3589

Vous pouvez spécifier une variable d'environnement nommée PORT pour spécifier le port sur lequel le serveur sera exécuté.

$ export PORT=3005 #Linux
$ $env:PORT=3005 # Windows - Powershell

2 votes

Je vais exécuter deux applications react, l'une doit être sur le port 3005 et l'autre sur le port 3006.

2 votes

@lem Vous pouvez ouvrir deux consoles, définir les variables d'environnement 3005 et 3006 dans chacune d'elles et exécuter l'application.

3 votes

"start": "set PORT=3005 react-scripts start" il suffit de définir le port mais ne lance pas l'application

8voto

Juste une petite mise à jour dans webpack.config.js :

devServer: {
    historyApiFallback: true,
    contentBase: './',
    port: 3000 // <--- Add this line and choose your own port number
}

puis exécutez npm start encore.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X