Ассеты в 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 бандле.