Assets σε CSS Bundles στο Webpack

Ας κάνουμε τώρα έτσι ώστε οι διαδρομές στα αρχεία .png να αντικαθίστανται στα αρχεία CSS κατά τη διάρκεια της δόμησης:

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

Ας ελέγξουμε πώς λειτουργεί αυτό. Ας συνδέσουμε μια εικόνα και ένα αρχείο με στυλ στο σημείο εισόδου:

src/index.jsimport './images/img.png';
import './styles.css';

Ας υποθέσουμε ότι στο αρχείο με τα στυλ χρησιμοποιούμε τη διαδρομή προς την εικόνα:

src/styles.cssbody {
  background: url('images/img.png');
}

Μετά τη δόμηση, στο CSS bundle η διαδρομή προς την εικόνα θα αλλάξει σε νέα:

dist/bundle.ec64ceadef9be2621b7f.cssbody {
  background: url('σωστή διαδρομή από τη ρίζα');
}
Задание 1

Ορίστε μια εικόνα φόντου στο αρχείο CSS.

Задание 2

Συνδέστε την εικόνα στο σημείο εισόδου.

Задание 3

Εκτελέστε τη δόμηση και κοιτάξτε σε ποιο αρχείο θα αντιγραφεί η εικόνα και πώς θα φαίνεται η νέα διαδρομή στο CSS bundle.