Différence entre `npm start` et` node app.js`, au démarrage de l’application?

J’ai installé une application en utilisant la commande express new 'filename' . Je viens d’apprendre que vous pouvez lancer une application en utilisant:

 npm start 

Jusqu’à présent, j’ai utilisé:

 node app.js 

pour démarrer mon serveur. Quelqu’un sait quelle est la différence entre les deux? Merci.

    Depuis la page de manuel , npm start:

    exécute le script de démarrage d’un paquet, s’il en existe un. Si aucune version n’est spécifiée, la version “active” est lancée.

    Certes, cette description est totalement inutile, et c’est tout ce que cela dit. Au moins c’est plus documenté que socket.io.

    Quoi qu’il en soit, ce qui se passe vraiment, c’est que npm regarde dans votre fichier package.json , et si vous avez quelque chose comme

    “scripts”: {“start”: “coffee server.coffee”}

    alors ça va faire ça. Si npm ne trouve pas votre script de démarrage, sa valeur par défaut est:

    node server.js

    La documentation a été mise à jour . Ma réponse a des changements substantiels par rapport à la réponse acceptée: je voulais refléter la documentation est à jour, et la réponse acceptée a quelques liens brisés.

    De plus, je n’ai pas compris quand la réponse acceptée disait “par défaut, node server.js “. Je pense que la documentation clarifie le comportement par défaut:

    npm-start

    Démarrer un package

    Synopsis

    npm start [-- ]

    La description

    Cela exécute une commande arbitraire spécifiée dans la propriété ” start ” du package de son object ” scripts . Si aucune propriété ” start ” n’est spécifiée sur l’object ” scripts “, cela lancera node server.js .

    En résumé, l’exécution de npm start peut faire l’une des deux choses suivantes:

    1. npm start {command_name} : Exécute une commande arbitraire (c.-à-d. si une telle commande est spécifiée dans la propriété start de l’object scripts de package.json)
    2. npm start : Sinon si aucune propriété start n’existe (ou si aucun command_name n’est transmis): Exécutez le node server.js (ce qui peut ne pas être approprié , par exemple l’OP n’a pas server.js ; l’OP exécute le node app.js )
    3. J’ai dit que je n’énumérerais que 2 éléments, mais que d’autres possibilités (par exemple des cas d’erreur). Par exemple, s’il n’y a pas de package.json dans le répertoire où vous exécutez npm start , vous pouvez voir une erreur: npm ERR! enoent ENOENT: no such file or directory, open '.\package.json' npm ERR! enoent ENOENT: no such file or directory, open '.\package.json'