Ejemplo mínimo
Introducción
Basado en minimal webpack html y en webpack by example - part 1.
Proyecto
Generamos tres ficheros:
- webpack.config.js: contiene la configuración de webpack. Básicamente define cuál es el primer fichero a leer y dónde escribe la salida del proceso de bundling.
- index.html: lo dejamos directamente en el directorio de distribución. Referencia al fichero bundle.js que es el resultado del bundling.
- index.js: es el fichero original (antes del bundling). Básicamente escribe en la consola del navegador.
//var webpack = require('webpack'); var path = require('path'); var BUILD_DIR = path.resolve(__dirname, 'src/client/public'); var APP_DIR = path.resolve(__dirname, 'src/client/app'); var config = { entry: APP_DIR + '/index.js', output: { path: BUILD_DIR, filename: 'bundle.js' } }; module.exports = config;
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Webpack - ejemplo minimo</title> </head> <body> <script src="bundle.js"></script> </body> </html>
window.console.log('Hola mundo');
en donde:
- Por una lado se requieren las librerías webpack y path
- La librería path sirve para componer las rutas de BUILD_DIR y APP_DIR. Vemos que la aplicación cliente se guarda en src/client/app.
- En la variable config e identifica el punto de entrada entry y la salida output (se indica la ruta y el nombre del fichero bundle.js).
Construcción
Bastará con ejecutar:
$ node_modules/.bin/webpack -p Hash: 4715fed529234f0c574b Version: webpack 4.23.1 Time: 85ms Built at: 02/11/2018 16:11:43 Asset Size Chunks Chunk Names bundle.js 963 bytes 0 [emitted] main Entrypoint main = bundle.js [0] ./src/client/app/index.js 83 bytes {0} [built]
Ejecución
Visitaremos:
$ firefox src/app/public/index.html
y abrimos la consola del navegador pulsando Ctrl+Shift+K