Assets σε CSS Bundles στο 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 bundle η διαδρομή προς την εικόνα θα αλλάξει σε νέα:
body {
background: url('σωστή διαδρομή από τη ρίζα');
}
Ορίστε μια εικόνα φόντου στο αρχείο CSS.
Συνδέστε την εικόνα στο σημείο εισόδου.
Εκτελέστε τη δόμηση και κοιτάξτε σε ποιο αρχείο θα αντιγραφεί η εικόνα και πώς θα φαίνεται η νέα διαδρομή στο CSS bundle.