javascript - ¿Webpack funciona tanto en el frontend como en el backend?
En su sitio web, nuestro paquete se define como:
webpack es un empaquetador de módulos. Su propósito principal es empaquetar archivos JavaScript para su uso en un navegador, aunque también es capaz de transformar, empaquetar o empaquetar prácticamente cualquier recurso o activo.
Mi confusión comienza con esta respuesta. Describe webpack-dev-server como:
Webpack Dev Server es en sí mismo un servidor express que utiliza webpack-dev-middleware para servir el último paquete y además maneja las solicitudes de reemplazo de módulos en caliente (HMR) para actualizaciones de módulos en vivo en el cliente.
¿Se está usando webpack para 'compilar' express o es una manera de decirle a express que hay cambios en el front-end?
Mi confusión se profundiza aún más cuando miro este proyecto y (según su archivo package.json) han usado webpack-dev-server, pero no puedo ver que haya instalado ningún webpack. ¿Qué está pasando? ¿Se puede usar webpack-dev-server sin Webpack?
Y finalmente mi última pregunta, ¿Angular viene con webpack dentro o necesitas instalarlo para usarlo?
Respuesta #1
Primero, webpack es un compilador, no una biblioteca en este momento. Esto significa que compila diferentes componentes en un archivo js (estoy simplificando demasiado ahora para poder explicar). Después de la compilación, puedes usar ese archivo como quieras.
Webpack Dev Server es una herramienta adicional. Permite trabajar con webpack más fácilmente. Lo que hace es que después de la compilación de webpack lanza un servidor localhost (usando express) con tu código empaquetado. Además, puedes agregar reemplazo en caliente de módulos (HMR). Esa parte actualizará tu paquete al instante sin reconstruir todo el paquete (será mucho más rápido).
Acerca del ejemplo con "sin webpack": usan angular-devkit/build-angular, es otra herramienta para desarrolladores perezosos que quieren arruinar el proyecto desde el principio porque no quieren pasar 3 horas aprendiendo webpack. No tienen webpack como dependencia porque angular-devkit/build-angular lo tiene.
Y finalmente, mi última pregunta: ¿Angular viene con Webpack incluido o necesitas instalarlo para usarlo? - Necesitas instalar Angular por ti mismo.
Respuesta #2
¿Se está utilizando webpack para 'compilar' express o es una forma de decirle a express que hay cambios en el front-end?
Cuando hay un cambio en el código del front-end, el servidor de desarrollo de Webpack escuchará ese cambio y recargará tu contenido
¿Qué está pasando? ¿Se puede usar el servidor de desarrollo de Webpack sin Webpack?
Webpack-dev-server depende de webpack, así que cuando instalas webpack-dev-server, npm también instalará webpack
¿Angular venía con webpack dentro o necesitas instalarlo para usarlo?
Angular CLI viene con Webpack y no necesitas instalar Webpack para usarlo porque el archivo de configuración de Webpack para Angular CLI está oculto para el usuario