Ассеты в CSS бандлах в 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 бандле путь к картинке будет изменен на новый:
body {
background: url('верный путь от корня');
}
Задайте в CSS файле фоновую картинку.
Подключите картинку к точке входа.
Выполните сборку и посмотрите, в какой файл скопируется картинка и как будет выглядеть новый путь в CSS бандле.