J'ai travaillé avec un projet React en utilisant create-react-app
et j'ai deux options pour démarrer le projet:
Première manière:
npm run start
avec la définition package.json
comme ceci:
"start": "react-scripts start",
Deuxième manière:
npm start
Quelle est la différence entre ces deux commandes? Et quel est le but du react-scripts start
?
J'ai essayé de trouver la définition, mais je viens de trouver un paquet avec ce nom. Je ne sais toujours pas à quoi sert cette commande?
npm
vous exécutez des scripts comme celui-cinpm run scriptName
,npm start
est aussi un raccourci pournpm run start
react-scripts start
est la commande appropriée pour exécuter l'application React en mode dev. Cette commande est stockée dans package.json afin que vous n'ayez pas à la mémoriser et pouvez simplement taper l'habituel à lanpm run start
place.npm start
est un raccourci pour ce dernier.Réponses:
create-react-app et react-scripts
react-scripts
est un ensemble de scripts ducreate-react-app
Starter Pack. create-react-app vous aide à lancer des projets sans configuration, vous n'avez donc pas à configurer votre projet vous-même.react-scripts start
configure l'environnement de développement et démarre un serveur, ainsi que le rechargement à chaud du module. Vous pouvez lire ici pour voir tout ce qu'il fait pour vous.avec create-react-app, vous disposez des fonctionnalités suivantes prêtes à l'emploi.
scripts npm
npm start
est un raccourci pournpm run start
.npm run
est utilisé pour exécuter des scripts que vous définissez dans l'scripts
objet de votre package.jsons'il n'y a pas de
start
clé dans l'objet scripts, il sera par défautnode server.js
Parfois, vous voulez faire plus que ce que les scripts de réaction vous donnent, dans ce cas, vous pouvez le faire
react-scripts eject
. Cela transformera votre projet d'un état «géré» en un état non géré, où vous avez un contrôle total sur les dépendances, les scripts de création et d'autres configurations.la source
npm run build
. cela créera un dossier de construction. ce dossier, vous pouvez ensuite servir. par exemplenpm install -g serve
, puisserve -s build
facebook.github.io/create-react-app/docs/deploymentComme l'a souligné Sagiv bg, la
npm start
commande est un raccourci pournpm run start
. Je voulais juste ajouter un exemple réel pour le clarifier un peu plus.La configuration ci-dessous provient du
create-react-app
repo github. Lepackage.json
définit un ensemble de scripts qui définissent le flux réel.Pour plus de clarté, j'ai ajouté un diagramme.
Les cases bleues sont des références à des scripts, que vous pouvez tous exécuter directement avec une
npm run <script-name>
commande. Mais comme vous pouvez le voir, il n'y a en fait que 2 flux pratiques:npm run start
npm run build
Les cases grises sont des commandes qui peuvent être exécutées à partir de la ligne de commande.
Ainsi, par exemple, si vous exécutez
npm start
(ounpm run start
) cela se traduit réellement par lanpm-run-all -p watch-css start-js
commande, qui est exécutée à partir de la ligne de commande.Dans mon cas, j'ai cette
npm-run-all
commande spéciale , qui est un plugin populaire qui recherche les scripts commençant par "build:" et les exécute tous. En fait, je n'en ai pas qui correspondent à ce modèle. Mais il peut également être utilisé pour exécuter plusieurs commandes en parallèle, ce qu'il fait ici, en utilisant le-p <command1> <command2>
commutateur. Donc, ici, il exécute 2 scripts, à savoirwatch-css
etstart-js
. (Ces derniers scripts mentionnés sont des observateurs qui surveillent les modifications de fichiers et ne se termineront qu'une fois supprimés.)Le
watch-css
s'assure que les*.scss
fichiers sont traduits en*.css
fichiers et recherche les futures mises à jour.Les
start-js
points versreact-scripts start
qui héberge le site Web en mode développement.En conclusion, la
npm start
commande est configurable. Si vous voulez savoir ce qu'il fait, vous devez vérifier lepackage.json
fichier. (et vous voudrez peut-être faire un petit diagramme lorsque les choses se compliquent).la source
"start" est le nom d'un script, dans npm vous exécutez des scripts comme celui-ci
npm run scriptName
,npm start
est également un raccourcinpm run start
Quant aux "react-scripts", il s'agit d'un script lié spécifiquement à create-react-app
la source