Assets in CSS bundels in Webpack
Laten we het nu zo instellen dat
paden naar .png bestanden worden vervangen
in CSS bestanden tijdens het bouwen:
webpack.config.jsexport 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(),
],
};
Laten we testen hoe dit werkt. Laten we een afbeelding en een stijlbestand importeren in het entry point:
src/index.jsimport './images/img.png';
import './styles.css';
Stel dat we in het stijlbestand een pad naar de afbeelding gebruiken:
src/styles.cssbody {
background: url('images/img.png');
}
Na het bouwen zal het pad naar de afbeelding in de CSS bundle worden gewijzigd naar een nieuw pad:
dist/bundle.ec64ceadef9be2621b7f.cssbody {
background: url('correct pad vanaf de root');
}
Задание 1
Stel een achtergrondafbeelding in het CSS-bestand in.
Задание 2
Importeer de afbeelding in het entry point.
Задание 3
Voer een build uit en kijk naar welk bestand de afbeelding wordt gekopieerd en hoe het nieuwe pad eruit zal zien in de CSS bundle.