Ассети в CSS bundles в Webpack
Нека сега направим така, че
пътищата към .png файлове да се заменят
в CSS файлове при сборка:
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(),
],
};
Нека проверим как работи това. Нека свържем към входната точка изображение и файл със стилове:
import './images/img.png';
import './styles.css';
Нека във файла със стилове използваме път към изображението:
body {
background: url('images/img.png');
}
След сборката в CSS bundle пътят към изображението ще бъде променен на нов:
body {
background: url('верен път от корена');
}
Задайте във CSS файла фоново изображение.
Свържете изображението към входната точка.
Извършете сборка и погледнете в кой файл ще бъде копирано изображението и как ще изглежда новият път в CSS bundle.