Assets în bundle-urile CSS în Webpack
Să facem acum astfel încât
căile către fișierele .png să fie înlocuite
în fișierele CSS la build:
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(),
],
};
Să verificăm cum funcționează acest lucru. Să conectăm la punctul de intrare o imagine și un fișier cu stiluri:
import './images/img.png';
import './styles.css';
Să presupunem că în fișierul cu stiluri folosim calea către imagine:
body {
background: url('images/img.png');
}
După build, în bundle-ul CSS calea către imagine va fi schimbată cu una nouă:
body {
background: url('calea corectă de la rădăcină');
}
Setați în fișierul CSS o imagine de fundal.
Conectați imaginea la punctul de intrare.
Efectuați build-ul și uitați-vă, în ce fișier va fi copiată imaginea și cum va arăta noua cale în bundle-ul CSS.