Assets w bundle CSS w Webpack
Sprawmy teraz, aby
ścieżki do plików .png były zastępowane
w plikach CSS podczas budowania:
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(),
],
};
Sprawdźmy, jak to działa. Podłączmy do punktu wejścia obrazek i plik ze stylami:
import './images/img.png';
import './styles.css';
Załóżmy, że w pliku ze stylami używamy ścieżki do obrazka:
body {
background: url('images/img.png');
}
Po zbudowaniu w bundle CSS ścieżka do obrazka zostanie zmieniona na nową:
body {
background: url('prawidłowa ścieżka od katalogu głównego');
}
Ustaw w pliku CSS obraz tła.
Podłącz obrazek do punktu wejścia.
Wykonaj budowanie i spójrz, do którego pliku zostanie skopiowany obrazek i jak będzie wyglądać nowa ścieżka w bundle CSS.