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.
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
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]]}
-
npm start {command_name}
: Ejecute un comando arbitrario (es decir, si dicho comando se especifica en la propiedadstart
de package.jsonscripts
objeto) -
npm start
: Si nostart
la propiedad existe (o no se pasacommand_name
): Runnode server.js
, (que puede no ser apropiado , por ejemplo, el OP no tieneserver.js
; el OP se ejecutanode
app.js
) - 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 ejecutanpm start
, puede ver un error:npm ERR! enoent ENOENT: no such file or directory, open '.\package.json'
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