Несколько CSS бандлов в Webpack

Если несколько точек входа сливаются в один файл, то и файл сборки CSS будет для них один. Если же мы собираем JavaScript в несколько бандлов, то для каждого из них будет собран свой CSS файл.

Давайте посмотрим на примере. Пусть у нас есть одна точка входа и к ней импортируются некоторые файлы стилей:

import './styles1-1.css'; import './styles1-2.css';

Пусть ко второй точки входа также импортируются стили:

import './styles2-1.css'; import './styles2-2.css';

Давайте напишем настройки:

export default { context: path.resolve( 'src'), entry: { test1: './test1.js', test2: './test2.js' }, output: { filename: '[name].[contenthash].js', path: path.resolve('dist'), }, plugins: [new MiniCssExtractPlugin({ filename: '[name].[contenthash].css' })], module: { rules: [ { test: /\.css$/i, use: [MiniCssExtractPlugin.loader, 'css-loader'], }, ], }, };

В результате таких настроек будет собрано два CSS бандла: test1.398db7afe3b52e94bb25.css и test2.1d12c304c284a752cb9a.css.

Сделайте три точки входа. Подключите к каждой свои CSS файлы. Выполните сборку и проверьте, что получится в результате.