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á elnode server.js
.
En resumen, ejecutar npm start
podría hacer una de npm start
dos cosas:
-
npm start {command_name}
: ejecuta un comando arbitrario (es decir, si dicho comando se especifica en la propiedad destart
del objeto descripts
package.json) -
npm start
: Else si no existe una propiedad destart
(o no se pasa ningúncommand_name
): Ejecute elnode server.js
, (que puede no ser apropiado , por ejemplo, el OP no tieneserver.js
; el OP ejecuta elnode
app.js
) - 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 ejecutanpm 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''