Quand utiliser ' npm start 'et quand utiliser'ng serve'?
ng serve
sert un projet angulaire via un serveur de développement
npm start
exécute une commande arbitraire spécifiée dans le paquet "start" propriété de son objet "scripts". Si aucun bien" démarrer " n'est spécifié sur l'objet "scripts", il exécute le serveur de noeuds.js.
il semble que ng serve
démarre le serveur intégré alors que npm start
démarre les serveurs de noeuds.
quelqu'un peut-il nous éclairer?
3 réponses
npm start
exécutera tout ce que vous avez défini pour la commande start
de l'objet scripts
dans votre fichier package.json
.
donc si elle ressemble à ceci:
"scripts": {
"start": "ng serve"
}
puis npm start
sera exécuté ng serve
.
pour un projet qui utilise le CLI, vous utiliserez généralement ng serve. Dans d'autres cas, vous pouvez utiliser npm start. Voici l'explication détaillée:
ng servir
servira à un projet que est "Angular CLI aware", c.-à-d. un projet qui a été créé en utilisant L'Angular CLI, en particulier en utilisant:
ng new app-name
donc, si vous avez échafaudé un projet en utilisant le CLI, vous voudrez probablement utiliser ng servir
npm démarrer
ceci peut être utilisé dans le cas d'un projet qui est et non conscient de CLI angulaire (ou il peut simplement être utilisé pour exécuter 'ng serve' pour un projet qui est conscient de CLI angulaire)
comme l'indiquent les autres réponses, il s'agit d'une commande npm qui exécutera la(Les) commande (s) npm à partir du paquet.json qui ont l'identificateur "démarrer", et il ne peut pas exécuter 'ng servir". Il est possible d'avoir quelque chose de comme ce qui suit dans le paquet.json:
"scripts": {
"build:watch": "tsc -p src/ -w",
"serve": "lite-server -c=bs-config.json",
"start": "concurrently \"npm run build:watch\" \"npm run serve\""
...
},
"devDependencies": {
"concurrently": "^3.2.0",
"lite-server": "^2.2.2",
dans ce cas, 'npm start' donnera les commandes suivantes à exécuter:
concurrently "npm run build:watch" "npm run serve"
cette commande exécutera simultanément le compilateur TypeScript (en surveillant les changements de code), et exécutera le noeud Lite-server (que les utilisateurs BrowserSync)
du document
cette commande exécute une commande arbitraire spécifiée dans la propriété" start "du paquet de son objet" scripts". Si aucune propriété " start "n'est spécifiée sur l'objet" scripts", il lancera node server.js.
ce qui signifie qu'il appellera les scripts de démarrage à l'intérieur du paquet.json
"scripts": {
"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite --baseDir ./app --port 8001\" ",
"lite": "lite-server",
...
}
fourni par angular/angular-cli pour démarrer angular2 apps qui a été créé par angular-cli. lorsque vous installez angular-cli, il va créer ng.cmd sous C:\Users\name\AppData\Roaming\npm
(pour windows) et exécuter "%~dp0\node.exe" "%~dp0\node_modules\angular-cli\bin\ng" %*
donc en utilisant npm start
vous pouvez faire votre propre exécution où est ng serve
est seulement pour angular-cli
Voir Aussi : Ce qui se passe lorsque vous exécutez ng servir?