He estado trabajando con un proyecto React, usando create-react-app
, y tengo dos opciones para comenzar el proyecto:
Primera forma:
npm run start
con la definición package.json
así:
"start": "react-scripts start",
Segunda forma:
y npm start
¿Cuál es la diferencia entre estos dos comandos? ¿Y cuál es el propósito de la react-scripts start
?
Traté de encontrar la definición, pero acabo de encontrar un paquete con el nombre, y todavía no sé cuál es el significado de este comando.
npm
que ejecuta scripts como estenpm run scriptName
,npm start
también es una abreviatura denpm run start
react-scripts start
es el comando adecuado para ejecutar la aplicación React en modo dev. Este comando se almacena en package.json, por lo que no tiene que memorizarlo y simplemente puede escribir lo habitual en sunpm run start
lugar.npm start
es un atajo para este último.Respuestas:
crear-reaccionar-aplicación y reaccionar-scripts
react-scripts
es un conjunto de scripts delcreate-react-app
paquete de inicio. create-react-app lo ayuda a iniciar proyectos sin configurar, para que no tenga que configurar su proyecto usted mismo.react-scripts start
configura el entorno de desarrollo e inicia un servidor, así como la recarga del módulo activo. Puedes leer aquí para ver todo lo que hace por ti.con create-react-app tienes las siguientes características listas para usar.
npm scripts
npm start
es un acceso directo paranpm run start
.npm run
se usa para ejecutar scripts que usted define en elscripts
objeto de su paquete.jsonsi no hay una
start
clave en el objeto de scripts, el valor predeterminado seránode server.js
A veces quieres hacer más de lo que te dan los scripts de reacción, en este caso puedes hacerlo
react-scripts eject
. Esto transformará su proyecto de un estado "administrado" a un estado no administrado, donde tiene control total sobre las dependencias, los scripts de compilación y otras configuraciones.fuente
npm run build
. Esto creará una carpeta de compilación. Esta carpeta puede servir. por ejemplo,npm install -g serve
y luegoserve -s build
facebook.github.io/create-react-app/docs/deploymentComo señaló Sagiv bg, el
npm start
comando es un atajo paranpm run start
. Solo quería agregar un ejemplo de la vida real para aclararlo un poco más.La configuración a continuación proviene del
create-react-app
repositorio de github. Elpackage.json
define un montón de scripts que definen el flujo real.Para mayor claridad, agregué un diagrama.
Los cuadros azules son referencias a scripts, todos los cuales puede ejecutar directamente con un
npm run <script-name>
comando. Pero como puede ver, en realidad solo hay 2 flujos prácticos:npm run start
npm run build
Los cuadros grises son comandos que se pueden ejecutar desde la línea de comandos.
Entonces, por ejemplo, si ejecuta
npm start
(onpm run start
) eso realmente se traduce alnpm-run-all -p watch-css start-js
comando, que se ejecuta desde la línea de comandos.En mi caso, tengo este
npm-run-all
comando especial , que es un complemento popular que busca secuencias de comandos que comienzan con "build:" y ejecuta todas esas. En realidad no tengo ninguno que coincida con ese patrón. Pero también se puede usar para ejecutar múltiples comandos en paralelo, lo que hace aquí, usando el-p <command1> <command2>
interruptor. Entonces, aquí ejecuta 2 scripts, es decir,watch-css
ystart-js
. (Esos últimos scripts mencionados son observadores que monitorean los cambios en los archivos y solo finalizarán cuando se eliminen).El
watch-css
se asegura de que los*.scss
archivos se traduzcan a*.css
archivos y busca futuras actualizaciones.Los
start-js
puntos a losreact-scripts start
que aloja el sitio web en un modo de desarrollo.En conclusión, el
npm start
comando es configurable. Si quieres saber qué hace, entonces debes verificar elpackage.json
archivo. (y es posible que desee hacer un pequeño diagrama cuando las cosas se complican).fuente
"inicio" es el nombre de un script, en npm ejecuta scripts como este
npm run scriptName
,npm start
también es una abreviatura denpm run start
En cuanto a "react-scripts", este es un script relacionado específicamente con create-react-app
fuente