Les assets dans les bundles CSS avec Webpack
Faisons en sorte maintenant que les
chemins vers les fichiers .png soient remplacés
dans les fichiers CSS lors de la construction :
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(),
],
};
Vérifions comment cela fonctionne. Importons une image et un fichier de styles dans le point d'entrée :
import './images/img.png';
import './styles.css';
Supposons que dans le fichier de styles, nous utilisons le chemin vers l'image :
body {
background: url('images/img.png');
}
Après la construction, dans le bundle CSS, le chemin vers l'image sera modifié pour le nouveau :
body {
background: url('chemin correct depuis la racine');
}
Définissez une image de fond dans le fichier CSS.
Importez l'image dans le point d'entrée.
Effectuez la construction et observez dans quel fichier l'image est copiée et à quoi ressemble le nouveau chemin dans le bundle CSS.