npm i --save-dev css-file-loader
This loader clones files (images, fonts ...) which referenced from css file like url (./image.png)
.
.selector {
background: url(./img.png) no-repeat -122px -293px;
width: 16px;
}
it will be replaced by
.selector {
background: url([options.publicPath]/[file hash].png) no-repeat -122px -293px;
/*For example url(http://localhost/ad31..2a.png) */
width: 16px;
}
and [file hash].png
will copy to output.path folder and filename replaced by file hash [file hash].png
module.exports = {
module: {
rules: [
{
test: /\.css$/,
use: [ 'css-loader', 'css-file-loader' ]
}
]
}
}
Combine with other loaders like sass
...
rules: [
{
test: /\.scss$/,
use: [ 'css-loader', 'css-file-loader', 'sass-loader' ]
}
]
...
Name | Type | Default | Description |
---|---|---|---|
publicPath |
{String} |
output.publicPath or / if options.publicPath and output.publicPath are empty |
This option specifies the public URL of the output directory when referenced in a browser.Must have slash at the end /hello/ |
{
test: /\.scss$/,
use: [
{loader: "css-loader"},
{
loader: "css-file-loader", options: {
publicPath: "/hello/" ,
}
},
{loader: "sass-loader"}
]
}