Nhiều Bundle CSS trong Webpack

Nếu nhiều điểm vào (entry point) được hợp nhất thành một tệp, thì tệp bundle CSS cũng sẽ chỉ có một. Nhưng nếu chúng ta build JavaScript thành nhiều bundle, thì mỗi bundle sẽ có một tệp CSS riêng được build.

Hãy xem một ví dụ. Giả sử chúng ta có một điểm vào và import một số tệp style vào đó:

src/test1.jsimport './styles1-1.css';
import './styles1-2.css';

Giả sử điểm vào thứ hai cũng import các style:

src/test2.jsimport './styles2-1.css';
import './styles2-2.css';

Hãy viết cấu hình:

webpack.config.jsexport 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'],
      },
    ],
  },
};

Kết quả của cấu hình này sẽ tạo ra hai bundle CSS: test1.398db7afe3b52e94bb25.css và test2.1d12c304c284a752cb9a.css.

Задание 1

Tạo ba điểm vào. Kết nối các tệp CSS riêng của chúng vào mỗi điểm. Thực hiện build và kiểm tra kết quả thu được.