Mi proyecto se basa en create-react-app . npm starto, yarn startde manera predeterminada, ejecutará la aplicación en el puerto 3000 y no hay opción de especificar un puerto en el paquete.json.
¿Cómo puedo especificar un puerto de mi elección en este caso? Quiero ejecutar dos de este proyecto simultáneamente (para pruebas), uno en puerto 3005y otro es3006

next -p 3005si alguien más cae aquí buscando lo mismo.Respuestas:
Si no desea establecer la variable de entorno , otra opción es modificar la
scriptsparte de package.json de:a
Linux (probado en Ubuntu 14.04 / 16.04) y MacOS (probado por @ aswin-s en MacOS Sierra 10.12.4):
o (puede ser) una solución más general por @IsaacPak
Solución Windows @JacobEnsor
cross-env lib funciona en todas partes. Ver la respuesta de Aguinaldo Possatto para más detalles.
Actualización debido a la popularidad de mi respuesta: actualmente prefiero usar variables de entorno guardadas en un
.envarchivo (útil para almacenar conjuntos de variables para diferentesdeployconfiguraciones en una forma conveniente y legible). No se olvide de añadir*.enven.gitignoresi todavía está guardando sus secretos en.envlos archivos. Aquí está la explicación de por qué el uso de variables de entorno es mejor en la mayoría de los casos. Aquí está la explicación de por qué almacenar secretos en el medio ambiente es una mala idea.fuente
"start": "set PORT=3005 && react-scripts start""start": "export PORT=3006 react-scripts start"funcionó para mí"start": "export PORT=3001 && react-scripts start"Este me funcionó en Ubuntu 16cross-enves cuando tienes varios desarrolladores trabajando en diferentes sistemas. Quizás algunos prefieran MAC y otros prefieran Windows. O, en otro escenario, todos los desarrolladores usan Windows pero desea agregar una Variable de entorno que se ejecutará en su servidor CI / CD que ejecuta Ubuntu. Espero que eso ayude.Aquí hay otra forma de lograr esta tarea.
Cree un
.envarchivo en la raíz de su proyecto y especifique el número de puerto allí. Me gusta:fuente
.env. En su caso, recomiendan usar el.env.localque no debe verificar en el control de fuente, para que pueda verificar de forma segura.enven el control de fuente. Entonces, el mismo consejo aún se aplica.Puede usar cross-env para configurar el puerto, y funcionará en Windows, Linux y Mac.
entonces en package.json el enlace de inicio podría ser así:
fuente
Puede especificar una variable de entorno denominada
PORTpara especificar el puerto en el que se ejecutará el servidor.fuente
"start": "set PORT=3005 react-scripts start"solo configura el puerto pero no ejecuta la aplicación"start": "set PORT=3005 && react-scripts start"Para mis amigos de Windows, descubrí una forma de cambiar el puerto ReactJS para que se ejecute en cualquier puerto que desee. Antes de ejecutar el servidor, vaya a
En él, busque la línea a continuación y cambie el número de puerto al puerto deseado
Y eres bueno para ir.
fuente
node_modulesdirectorio quedarán impresionados cuando se actualicen los paquetes. Probablemente sea mejor usar una de las otras respuestas.Cree un archivo con nombre
.enven el directorio principal ademáspackage.jsony establezca laPORTvariable en el número de puerto deseado.Por ejemplo:
.env
fuente
Solo actualiza un poco en
webpack.config.js:luego corre de
npm startnuevo.fuente
En su
package.json, vaya a los scripts y use--port 4000oset PORT=4000, como en el ejemplo a continuación:package.json(Windows):package.json(Ubuntu):fuente
Esto funciona tanto en Windows como en Linux
package.json
pero es preferible crear .env con PORT = 3006 escrito dentro
fuente
'PORT' is not recognized as an internal or external command, operable program or batch file.El cambio en mi archivo package.json también
"start": "export PORT=3001 && react-scripts start"funcionó para mí y estoy en macOS 10.13.4fuente
Para resumir, tenemos tres enfoques para lograr esto:
El más portátil será el último enfoque. Pero como se menciona en otro póster, agregue .env a .gitignore para no cargar la configuración en el repositorio de fuentes públicas.
Más detalles: este artículo
fuente
puedes encontrar la configuración de puerto predeterminada al iniciar tu aplicación
desplácese hacia abajo y cambie el puerto a lo que quiera
Espero que esto pueda ayudarte;)
fuente
yarn ejectprimero debe hacerlo .Prueba esto:
fuente
Sería bueno poder especificar un puerto que no
3000sea, ya sea como parámetro de línea de comando o como variable de entorno.En este momento, el proceso es bastante complicado:
npm run ejectscripts/start.jsy busque / reemplace3000con cualquier puerto que desee usarconfig/webpack.config.dev.jsy haz lo mismonpm startfuente
En Windows se puede hacer de 2 maneras.
En "\ node_modules \ react-scripts \ scripts \ start.js", busque "DEFAULT_PORT" y agregue el número de puerto deseado.
Por ejemplo: const DEFAULT_PORT = parseInt (process.env.PORT, 10) || 9999;
En package.json, anexe la siguiente línea. "start": "set PORT = 9999 && react-scripts start" Luego inicie la aplicación usando NPM start. Iniciará la aplicación en el puerto 9999.
fuente
¿Qué tal dar el número de puerto mientras se invoca el comando sin necesidad de cambiar nada en el código de su aplicación o en los archivos de entorno? De esa manera, es posible ejecutar y servir la misma base de código desde varios puertos diferentes.
me gusta:
$ export PORT=4000 && npm startPuede colocar el número de puerto que desee en lugar del valor de ejemplo
4000anterior.fuente
En caso de que ya lo haya hecho
npm run eject, vaya a scripts / start.js y cambie el puertoconst DEFAULT_PORT = parseInt(process.env.PORT, 10) || 3000;(3000 en este caso) al puerto que desee.fuente
Cambiar el puerto predeterminado en React-App
Ve a esta línea:
Cambie el número de puerto con su número de puerto
Por ejemplo:
Guardar y Salir
fuente
npm/yarn install. El cambio de archivosnode_modulesdebe ser evitado.