Come ha sottolineato Sagiv bg, il npm start
comando è una scorciatoia per npm run start
. Volevo solo aggiungere un esempio di vita reale per chiarire un po 'di più.
L'impostazione seguente proviene dal create-react-app
repository github. La package.json
definisce un insieme di script che definiscono il flusso effettivo.
"scripts": {
"start": "npm-run-all -p watch-css start-js",
"build": "npm run build-css && react-scripts build",
"watch-css": "npm run build-css && node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/ --watch --recursive",
"build-css": "node-sass-chokidar --include-path ./src --include-path ./node_modules src/ -o src/",
"start-js": "react-scripts start"
},
Per chiarezza, ho aggiunto un diagramma.
Le caselle blu sono riferimenti a script, che è possibile eseguire direttamente con un npm run <script-name>
comando. Ma come puoi vedere, in realtà ci sono solo 2 flussi pratici:
npm run start
npm run build
Le caselle grigie sono comandi che possono essere eseguiti dalla riga di comando.
Quindi, ad esempio, se si esegue npm start
(o npm run start
) che si traduce effettivamente nel npm-run-all -p watch-css start-js
comando, che viene eseguito dalla riga di comando.
Nel mio caso, ho questo npm-run-all
comando speciale , che è un plugin popolare che cerca script che iniziano con "build:" ed esegue tutti quelli. In realtà non ne ho nessuno che corrisponda a quel modello. Ma può anche essere usato per eseguire più comandi in parallelo, cosa che fa qui, usando l' -p <command1> <command2>
opzione. Quindi, qui esegue 2 script, ovvero watch-css
e start-js
. (Questi ultimi script citati sono osservatori che monitorano le modifiche ai file e finiranno solo quando vengono uccisi.)
In conclusione, il npm start
comando è configurabile. Se vuoi sapere cosa fa, devi controllare il package.json
file. (e potresti voler fare un piccolo diagramma quando le cose si complicano).
npm
cui esegui script come questonpm run scriptName
,npm start
è anche l'abbreviazione dinpm run start