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 destartdel objeto descriptspackage.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 elnodeapp.js) - Dije que solo enumeraría 2 elementos, pero hay otras posibilidades (es decir, casos de error). Por ejemplo, si no hay
package.jsonen 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''