La forma más común en la que el watch
se suele usar dentro de un archivo package.json
es esta:
"dev": "webpack --config webpack.config.dev.js",
"watch": "npm run dev --watch"
Simplemente se ejecuta el script dev
, pero con el flag watch
👀
Introducción a Webpack
¿Qué es Webpack?
Conceptos básicos de Webpack
Proyecto inicial
Tu primer build con Webpack
Instalación de Webpack y construcción del proyecto
Configuración de webpack.config.js
Loaders y Plugins en Webpack
Babel Loader para JavaScript
HTML en Webpack
Loaders para CSS y preprocesadores de CSS
Copia de archivos con Webpack
Loaders de imágenes
Loaders de fuentes
Optimización: hashes, compresión y minificación de archivos
Webpack Alias
Deploy del proyecto
Variables de entorno
Webpack en modo desarrollo
Webpack en modo producción
Webpack Watch
Deploy a Netlify
Herramientas de desarrollo complementarias
Webpack Dev Server
Webpack Bundle Analyzer
Webpack DevTools
Integración básica de React.js
Instalación y configuración de React
Configuración de Webpack 5 para React.js
Configuración de plugins y loaders para React
Configuración de Webpack para CSS en React
Optimización de Webpack para React
Deploy del proyecto con React.js
Próximos pasos
Continúa con el Curso Práctico de Webpack
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Oscar Barajas Tavares
Aportes 29
Preguntas 4
La forma más común en la que el watch
se suele usar dentro de un archivo package.json
es esta:
"dev": "webpack --config webpack.config.dev.js",
"watch": "npm run dev --watch"
Simplemente se ejecuta el script dev
, pero con el flag watch
👀
module.exports = {
...
watch: true
}
package.json
{
"scripts": {
"dev:watch": "webpack --config webpack.config.dev.js --watch"
}
}
Nota: Recuerden que para matar la consola es control + c
Este es un plugin bonito 😄
https://webpack.js.org/plugins/progress-plugin/
https://www.npmjs.com/package/progress-webpack-plugin
Te da un porcentaje de carga mientras el webpack compila
se supone que utilizar el --watch consume memoria del disco y por ello existe el plugin de webpack-plugin-server, que hace lo mismo pero lo que consume es la memoria ram(haciendo que el proceso sea mas optimo y eficaz). no?
Watch de Webpack
Habilitando esta opción lograremos que webpack levante un nuevo build cada vez que un archivo sufra un cambio, de manera automática. El modo watch lo podemos habilitar a través de la configuración de Webpack o por nuestro archivo package.json:
module.exports = {
...
watch: true,
};
o en nuestro JSON de la siguiente forma:
"scripts": {
...
"build:watch": "webpack --watch --config webpack.config.js"
}
Configuración de Watch
Watch tiene una serie de configuraciones que nos ayudarán a mejorar su comportamiento si es necesario. Entre ellos tenemos:
watchOptions.aggregateTimeout: number
= Añade un retraso antes de realizar el levantamiento del proyecto una vez se haya detectado el cambio, esto habilita a Webpack de añadir cualquier otro cambio realizado durante este periodo de tiempo, el tiempo se indica en ms.watchOptions.ignored: string
= En algunos sistemas, utilizar watch en muchos archivos puede provocar retrasos por el fuerte uso de CPU y memoria, así que es posible ignorar carpetas como node_moduleswatchOptions.poll: boolean || number
= Busca cambios realizados X cantidad de tiempo, el tiempo se indica en ms.module.exports = {
...
watchOptions: {
aggregateTimeout: 200,
ignored: /node_modules/,
poll: 1000,
},
};
Fuente: Documentación Webpack
En conclusión, watch es como el Live Server de VSC
el webpak Watch me recuerda a al nodemon de node.js XD
El modo watch de Webpack consiste en que está constantemente revisando si hay cambias en el proyecto y si detecta alguno, automáticamente hace un nuevo build.
Para trabajar con este modo hay que activarlo en el archivo de configuración agregando la propiedad watch con el valor true, con esto Webpack ya está en modo watch. Esta funcionalidad solo tiene sentido en un entorno de desarrollo.
Otra forma de activar este modo es mediante el comando de ejecución de webpack, agregando --watch
.
Una forma más fácil de trabajar con nuestro proyecto en modo desarrollo es con webpack-dev-server
que nos brinda comandos integrados con Webpack y configuraciones para su ejecución
Al parecer el modo production no se puede ocupar con la opción watch es por eso que a Óscar jamás le ejecuta otra compilación al ejecutar el npm run build:watch
Con la bandera --watch
podemos hacer que webpack esté escuchando nuestros cambios y compile el proyecto cada vez que guardamos 1 archivo.
👌
Sin tener que activar en el archivo de configuraciones de webpack y solo creando estos scripts. ¿Es lo mismo, no?
.
Para escuchar los cambios de nuestro proyecto y se compile de forma automática nuestro proyecto.
watch: "true",
1.- DESDE Webpack.config.dev.js o Webpack.config.js .
}
....
mode: 'development',
watch: true,
}
y corremos:
npm run dev /* ó */ npm run build
2.- DESDE package.json:
// YA SEA BUILD O DEV, SOLO SE AÑADE --watch + --config + el archivo .dev
"build": "webpack --mode production --watch --config webpack.config.js",
// Ó
"dev": "webpack --watch --config webpack.config.dev.js",
y corremos:
npm run dev /* ó */ npm run build
Vamos a activar el modo watch, esto observará los cambios de nuestros proyecto y hará que se compile de manera automática.
Aquí ya tenemos habilitada la opción para ver los cambios al tiempo.
*webpack.config.dev.js*
watch: true,
Debajo estamos colocando de manera explícita que queremos ver los cambios al tiempo. Específicamente en modo producción.
*package.json*
"build:watch": "webpack --watch --config webpack.config.js"
El modo watch es para estar escuchando los cambios del proyecto y esto se compile de forma automatica.
Para hacer esto hay que ir a la configuracion del modo desarrollo y hay que activarlo en el modo donde escribimos que usaremos el modo development, abajo agregaremos:
watch:true
y ya en la consola solo ejecutaremos el modo dev y veremos que se queda esperando y ya podremos observar que cada que cambiamos un archivo, este se vuelve a compilar automaticamente.
Otra forma de activarlo para una configuracion especifica o forma para preparar el proyecto es en el package.json y es crear la opcion de:
"build:watch": "webpack --watch --config webpack.config.dev.js"
Es recomendable hacer esto de forma en el dev pero se puede hacer con cualquier otro archivo.
Webpack watch
module.exports = {
watch: true,
}
gg
Es valido recordar que el modo desarrollo no tienen que ser el modo local.
no esta cargando este video
watch: true
"build:watch": "webpack --watch --config webpack.config.js"
Tambien lo podemos usar desde el pckage.json
"scripts": {
"dev": "webpack --watch --config webpack.config.dev.js"
},
Webpack Watch
Agregamos el código watch: true
Ejemplo en el archivo webpack.config.dev.js
mode: 'development',
watch: true,
Agregamos los build:watch para que siempre este escuchando los cambios que se estan realizando en el proyecto
Se agrega en el package.json
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack --config webpack.config.js",
"dev": "webpack --config webpack.config.dev.js",
"build:watch": "webpack --watch --config webpack.config.js",
},
Webpack Watch seria como NODEMON
al usar el comano watch en otra opcion de scripts en package.json me funciona pero me da una advertencia de que no tiene sentido tener la linea { watch: true } en el archivo config de webpack que estoy lanzando
Uy en esta clase hay un error, se pierde el audio y se detiene el video ojala puedan arreglarlo pronto
Hola, he estado buscando en Google, pero sigo sin entender las diferencias entre el mode development y production, se que hace que los archivos se vean distintos, pero nada mas.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?