que proyecto node example crear node.js express npm

node.js - proyecto - ¿Diferencia entre `npm start` y` node app.js`, al iniciar la aplicación?



package.json example (2)

He instalado una aplicación usando el comando express new ''filename'' . Acabo de enterarme de que puede iniciar una aplicación usando:

npm start

Hasta ahora he usado:

node app.js

para iniciar mi servidor Alguien sabe cuál es la diferencia entre los dos? Gracias.


Desde la página man , npm start:

ejecuta el script de "inicio" de un paquete, si se proporcionó uno. Si no se especifica ninguna versión, comienza la versión "activa".

Es cierto que esa descripción es completamente inútil, y eso es todo lo que dice. Al menos está más documentado que socket.io.

De todos modos, lo que realmente sucede es que npm busca en su archivo package.json , y si tiene algo así como

"scripts": {"start": "coffee server.coffee"}

entonces hará eso. Si npm no puede encontrar su secuencia de comandos de inicio, su valor predeterminado es:

nodo server.js


La documentación ha sido actualizada . Mi respuesta no es diferente a la respuesta aceptada, pero quería reflejar que la documentación está actualizada, y la respuesta aceptada tiene algunos enlaces rotos, y de alguna manera no entendí cuando la respuesta aceptada decía "de manera predeterminada es el node server.js ". Creo que la documentación ahora es muy clara:

npm-start

Comience un paquete

Sinopsis

npm start [-- <args>]

Descripción

Esto ejecuta un comando arbitrario especificado en la propiedad " start " del paquete de su objeto " scripts " . Si no se especifica ninguna propiedad " start " en el objeto " scripts ", se ejecutará el node server.js .

En resumen, ejecutar npm start podría hacer una de npm start dos cosas:

  1. npm start {command_name} : ejecuta un comando arbitrario (es decir, si dicho comando se especifica en la propiedad de start del objeto de scripts package.json)
  2. npm start : Else si no existe una propiedad de start (o no se pasa ningún command_name ): Ejecute el node server.js , (que puede no ser apropiado , por ejemplo, el OP no tiene server.js ; el OP ejecuta el node app.js )
  3. Dije que solo enumeraría 2 elementos, pero hay otras posibilidades (es decir, casos de error). Por ejemplo, si no hay package.json en el directorio donde ejecuta npm start , puede ver un error: npm ERR! enoent ENOENT: no such file or directory, open ''./package.json'' npm ERR! enoent ENOENT: no such file or directory, open ''./package.json''