WebpackにおけるCSSバンドルのアセット
それでは、ビルド時にCSSファイル内の
.pngファイルへのパスが
置き換えられるようにしましょう:
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バンドル内の画像へのパスは 新しいものに変更されます:
body {
background: url('ルートからの正しいパス');
}
CSSファイルで背景画像を設定してください。
画像をエントリーポイントにインポートしてください。
ビルドを実行し、画像がどのファイルにコピーされ、 CSSバンドル内の新しいパスがどのように表示されるかを 確認してください。