rollup-plugin-spritesmith
It is a rollup plugin for sprite
npm i rollup-plugin-spritesmith -D
{
plugins: [
spritesmithWebpackPlugin({
prefix: "icon",
rootPrefix: "index",
resultImageType: "png",
resultCssType: "css",
padding: 6,
retinaIdentifier: "@2x",
retinaDPR: 2,
minResolution: 192,
unit: "px",
hash: false,
watch: false,
paths: {
source: resolve("src/assets/sprite"),
result: resolve("src/style/sprite"),
resultCss: resolve("src/style/sprite/css"),
resultImage: resolve("src/style/sprite/images"),
},
success() {
// TODO
},
}),
];
}
default: icon
css className prefix, fore example:
.icon-home-down{ width: 20px; height: 31px; background-position: 0px -70px; }
default: index
css className rootPrefix
default: png
the type of result images
default: css
the padding value of result images
default: @2x
the identifier of image filter for retina
default: retinaDPR = 2, minResolution = 192
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.icon-home-down,
.icon-home-good,
.icon-home-triangle-right,
.icon-home-update {
display: inline-block;
background-repeat: no-repeat;
background-image: url("../images/home@2x.png?t=1575970989349");
background-size: 116px 101px;
}
}
default: px
default: false
whether hash value is required
default: false
this can watch images by directory.
{
source: resolve('src/assets/sprite'),
result: resolve('src/style/sprite'),
resultCss: resolve('src/style/sprite/css'),
resultImage: resolve('src/style/sprite/images')
}
default: null