¿Cuáles son esas razones por las que las personas instalan Node.js en la PC? ¿Se puede desarrollar un sitio web de Node.js sin instalar Node.js en la PC? En caso afirmativo, ¿cuáles son las desventajas? Gracias
Puede haber muchas razones, pero algunas comunes:
No están directamente relacionados, pero npm y Node.js tienen muchos usos más allá de servir como back-end para sitios web basados en JavaScript. Muchas personas que tienen instalado Node.js no tienen nada que ver con el desarrollo web, pero lo tienen por una de las muchas otras razones.
Para responder a su segunda pregunta: "¿se puede desarrollar un sitio web Node.js sin instalar Node.js en la PC?" Sí, pero veo muy pocas razones para querer hacerlo, a menos que sea necesario. La ventaja podría ser que puede evitar tener una pieza de software complicada con una gran huella y posiblemente algunos problemas de seguridad en su máquina de desarrollo. Pero las desventajas para el desarrollador promedio probablemente superen con creces eso, más aún si simplemente coloca en un entorno aislado todo el entorno de desarrollo en caso de que la seguridad sea su principal preocupación.
Si está escribiendo todo desde cero, no necesita un administrador de paquetes, ¡pero hay tantas cosas geniales que puede usar en lugar de escribirlas usted mismo! Si desea usarlo, necesita un administrador de paquetes que le permita descargar (una versión específica opcional de) paquetes específicos, que pueden usar paquetes en sí mismos, y SU repositorio de código fuente no necesita almacenar una copia de cada paquete que usted use, y cada paquete usado por los paquetes que usa, porque, siempre que su código fuente especifique qué paquetes usa de una manera que su administrador de paquetes entienda, todo lo que necesita hacer es especificar un manifiesto de (una versión específica opcional de) paquetes específicos que su código usa directamente.
"NPM" es uno de esos administradores de paquetes. "bower" es otro pero que usa NPM debajo del capó. Maven es un administrador de paquetes que he visto en proyectos de Java y NuGet para proyectos de MS, pero para proyectos de JavaScript generalmente es NPM. Y NPM usa node.