Assets v CSS bundlech ve Webpacku
Nyní udělejme, aby se
cesty k souborům .png
v CSS souborech při sestavení nahrazovaly:
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(),
],
};
Pojďme vyzkoušet, jak to funguje. Připojme k vstupnímu bodu obrázek a soubor se styly:
import './images/img.png';
import './styles.css';
Předpokládejme, že v souboru se styly používáme cestu k obrázku:
body {
background: url('images/img.png');
}
Po sestavení bude cesta k obrázku v CSS bundle změněna na novou:
body {
background: url('správná cesta od kořene');
}
Nastavte v CSS souboru obrázek na pozadí.
Připojte obrázek ke vstupnímu bodu.
Proveďte sestavení a podívejte se, do kterého souboru se obrázek zkopíruje a jak bude vypadat nová cesta v CSS bundle.