Recursos en bundles CSS en Webpack
Ahora hagamos que las rutas a los archivos
.png
se reemplacen en los archivos CSS
durante la compilación:
export default {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve('dist')
},
module: {
rules: [
{
test: /\.png$/,
type: 'asset/resource'
},
{
test: /\.css$/i,
use: [MiniCssExtractPlugin.loader, 'css-loader'],
},
]
},
plugins: [
new MiniCssExtractPlugin({
filename: 'bundle.[contenthash].css'
}),
new HtmlWebpackPlugin(),
],
};
Comprobemos cómo funciona esto. Importemos una imagen y un archivo de estilos en el punto de entrada:
import './images/img.png';
import './styles.css';
Supongamos que en el archivo de estilos usamos la ruta a la imagen:
body {
background: url('images/img.png');
}
Después de la compilación, la ruta a la imagen en el bundle CSS cambiará a una nueva:
body {
background: url('ruta correcta desde la raíz');
}
Establezca una imagen de fondo en el archivo CSS.
Importe la imagen en el punto de entrada.
Ejecute la compilación y observe en qué archivo se copiará la imagen y cómo se verá la nueva ruta en el bundle CSS.