190 votes

Quand utiliser 'npm start' et quand utiliser 'ng serve'?

ng serve sert Angulaire du projet via un serveur de développement

 

npm start exécute une commande arbitraire spécifié dans le package "démarrer" propriété de ses "scripts" de l'objet. Si aucun "démarrer" de la propriété est spécifiée sur les "scripts" de l'objet, il sera exécuté nœud server.js.

Il semble que l' ng serve démarre le serveur embarqué alors qu' npm start commence le Nœud serveurs.

Quelqu'un peut jeter un peu de lumière sur elle?

251voto

Puigcerber Points 2245

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 cela ressemble à ceci:

 "scripts": {
  "start": "ng serve"
}
 

Ensuite, npm start exécutera ng serve .

51voto

Chris Halcrow Points 907

Pour un projet à l'aide de la CLI, vous utilisez habituellement ng servir. Dans d'autres cas, vous souhaiterez peut-être utiliser npm commencer. Voici l'explication détaillée:

ng servir

Servira un projet qui est Angulaire de la CLI de conscience", à savoir un projet qui a été créé à l'aide de l'angle de la CLI, en particulier à l'aide de:

ng new app-name

Donc, si vous avez échafaudée un projet à l'aide de la CLI, vous voudrez probablement utiliser ng servir

npm commencer

Cela peut être utilisé dans le cas d'un projet qui n'est pas Angulaire de la CLI de conscience (ou il peut simplement être utilisé pour exécuter 'ng servir pour un projet Angulaire de la CLI au courant)

Comme les autres réponses de l'état, c'est un mécanisme national de prévention de la commande exécuter la commande npm(s) de l'emballage.json qui ont l'identificateur "démarrer", et il ne peut pas exécuter 'ng servir". Il est possible d'avoir quelque chose comme ce qui suit dans le package.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 démarrer', voici les commandes à exécuter:

concurrently "npm run build:watch" "npm run serve"

Cela permettra d'exécuter simultanément le Tapuscrit compilateur (en faisant attention aux changements de code), et exécutez le Nœud lite-serveur (les utilisateurs qui BrowserSync)

14voto

vels4j Points 4807

À partir du document

npm-début :

Cela va à l'arbitraire de commande spécifié dans le package "démarrer" de la propriété de ses "scripts" de l'objet. Si aucun "démarrer" de la propriété est spécifiée sur les "scripts" de l'objet, il sera exécuté nœud server.js.

ce qui signifie qu'il va appeler les scripts de démarrage à l'intérieur de l'emballage.json

"scripts": {
"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite --baseDir ./app --port 8001\" ",
"lite": "lite-server",
 ...
}

ng servir:

Fournis par angulaire angulaire de la cli pour commencer angular2 applications créées par angulaires-cli. lorsque vous installez angulaire de la cli, il va créer ng.cmd sous C:\Users\name\AppData\Roaming\npm (pour windows) et de l'exécuter "%~dp0\node.exe" "%~dp0\node_modules\angular-cli\bin\ng" %*

Donc à l'aide d' npm start vous pouvez faire votre propre exécution où est - ng serve est uniquement pour angulaires-cli

Voir Aussi : Qu'advient-il lorsque vous exécutez ng servir?

-2voto

Heshan Points 108

Vous devez utiliser ng serve car npm start est un script qui exécute la même chose. Un moyen plus efficace consiste à appeler directement ng serve au-dessus du script inutile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X