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


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

npm start

Hasta ahora he utilizado:

node app.js

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

Author: jtheletter, 2012-07-30

2 answers

Desde la página de manual , npm start:

Ejecuta el script "start" de un paquete, si se proporcionó uno. Si no se especifica ninguna versión, entonces se inicia 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 se ve en su paquete .json archivo, y si usted tiene algo como

"scripts": {"start": "servidor de café.café" }

Entonces hará eso. Si npm no puede encontrar su script de inicio, el valor predeterminado es:

Servidor de nodos.js

 

 226
Author: Yusuf X,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-23 09:01:04

La documentación se ha actualizado. Mi respuesta tiene cambios sustanciales en comparación con la respuesta aceptada: quería reflejar que la documentación está actualizada y que la respuesta aceptada tiene algunos enlaces rotos.

Además, no entendí cuando la respuesta aceptada decía "por defecto es node server.js". Creo que la documentación aclara el comportamiento predeterminado:

Npm-start

Iniciar un paquete

Sinopsis

npm start [-- <args>]

Descripción

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

En resumen, correr npm start podría hacer una de dos cosas:{[24]]}

  1. npm start {command_name}: Ejecute un comando arbitrario (es decir, si dicho comando se especifica en la propiedad start de package.json scripts objeto)
  2. npm start: Si no start la propiedad existe (o no se pasa command_name): Run node server.js, (que puede no ser apropiado , por ejemplo, el OP no tiene server.js; el OP se ejecuta nodeapp.js )
  3. Dije que enumeraría solo 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'
 7
Author: The Red Pea,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-24 19:01:01