sprite-loader
sprite-loader is an image sprite generate tool.It helps you to resolve the troublesome of make sprite manually.
npm install sprite-loader --save
// for webpack 1
loaders: [
{
test: /\.css/,
loader: 'style!css!sprite'
},
{
test: /\.scss$/,
loader: 'style!css!sprite!sass'
}
]
// for webpack 2
rules: [
{
test: /\.css/,
use: ['style-loader', 'css-loader', 'sprite-loader']
},
{
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'sprite-loader', 'sass-loader']
}
]
First of all, add a comment in the first line of the file to enable sprite-loader.Then the loader will identify images and make sprites.
/* sprite-loader-enable */
.flip_flops {
width: 16px;
height: 16px;
background: url(./img/[email protected]);
}
.tram {
width: 50px;
height: 50px;
background: url(./img/[email protected]);
}
.pie {
width: 100px;
height: 100px;
background: url(./img/[email protected]);
}
It's very easy to adapt Retina screen. You just need to use double size images and name them as [email protected]. sprite-loader will generate 1x images and media query automatically.
sprite-loader will collect all the background and background-image attributes in css files to combine. Except for following circumstance:
-
Images that set the background-position and background-size.
/* ignore images that set background-position */ .bg1{background: url(1.png) no-repeat -10px -10px;} /* ignore images that set background-size的 */ .bg2{background: url(2.png); background-size: 10px 10px;}
-
Image url that contain #spriteignore string.
/* ignore all images that contain #spriteignore */ .bg3{background: url(3.png#spriteignore);}
MIT