博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Webpack3之雪碧图插件(WEBPACK-SPRITESMITH配置简述)
阅读量:6112 次
发布时间:2019-06-21

本文共 1778 字,大约阅读时间需要 5 分钟。

WEBPACK-SPRITESMITH配置简述

前注:

文档全文请查看 。

如果可以,请给本项目加【Star】和【Fork】持续关注。

有疑义请,发【Issues】。

0、使用说明

安装:

npm install复制代码

运行:

// 开发模式(推荐使用这个)npm run dev// 打包到dist目录npm run build复制代码

单独安装 webpack-spritesmith:(由于有雪碧图,所以记得,至少要有 file-loader

npm i --save webpack-spritesmith复制代码

1、概述

webpack-spritesmith 简单来说,就是把小图片拼成雪碧图,然后通过 css 类引入(再也不需要你自己写雪碧图的css,和在ps里面拼雪碧图了)。

我们之前用 url-loader 来将图片转base64字符串,这是另外一种解决方案,据说雪碧图的性能更好一些。

使用说明:

  1. 将小图片放到某一个文件夹;
  2. 通过配置拿到这个文件夹下,后缀名符合要求(自己配置)的所有图片;
  3. 自动生成雪碧图和 css 文件,并插入到配置好的文件夹内;
  4. css 文件自动引入了雪碧图(需要自行配置相对路径);
  5. 用户引入 css 文件,然后使用指定类即可;

2、配置

【这里不是英文文档的直接翻译】,示例参照

1、src 简单来说,这个属性用于配置你从哪里捕获这些小图片。这就意味着,你需要把加入雪碧图的图片,单独放到某一个文件夹。

cwd 必填就是小图片所在的目录啦,注意,不会递归子目录(即子目录里的会被无视)glob 必填类型是字符串,语法是glob语法(类似正则语法),有点像loader匹配符合要求的文件名。复制代码

2、target 输出文件的配置

image 必填把雪碧图输出到哪(需要带文件名)(注意这里不是指打包后,而是指打包前,实际打包还是被url-loader处理的)css 必填输出的css文件,可以是字符串、或者数组(如果是数组的话,输出多个同样的文件)复制代码

3、apiOptions 配置属性

generateSpriteName 可选,是一个函数,有一个参数(是文件的绝对路径,字符串),默认值是返回文件名(不含后缀和路径)。这个用于命名类名,默认是文件名作为类名cssImageRef 必填,生成的图片在 API 中被引用的路径。简单来说,就是你上面输出了 image 和 css ,那么在 css 用什么样的路径书写方式来引用 image 图片(可以是别名,或相对路径)handlebarsHelpers 可选是一个对象,并且是全局的(意味着后面的本插件的这个配置会覆盖前面的配置)。给 handlebars 用的,没搞懂,但一般用不上。复制代码

4、spritesmithOptions 可选,配置 用的。里面可以定制比如雪碧图的排列方向。

5、retina 可选,retina 屏的配置。略略略。

关于解决 retina 屏的雪碧图的问题,可以参考这个 ,所以最好给 spritesmithOptions.padding 属性赋值 2。

这个属性用于图片放大缩小。

6、customTemplates

可选,

这个应该是指用户自定义 css 模板,

官方参考模板是:/node_modules/spritesheet-templates/lib/templates/css.template.handlebars这个文件。

3、问题答疑

【问题一】为什么每个类名都以.icon-开头?

【答】因为其使用的是 handlebars 模板 node_modules/spritesheet-templates/lib/templates/css.template.js

然后模板中 selector 的值是被 node_modules/spritesheet-templates/lib/templates/css.template.js 处理过的。

【问题二】我如何更改雪碧图的 css 模板?

【答】参考问题一中,给的 css 模板,然后自己在 customTemplates 去修改。

转载于:https://juejin.im/post/5a5b8ba86fb9a01c9950c643

你可能感兴趣的文章
DropDownList 控制日期控件显示格式
查看>>
RecycleView设置顶部分割线(记录一个坑)
查看>>
【设计模式系列】单例模式的7种写法
查看>>
汉字转拼音 (转)
查看>>
Machine Learning Techniques -6-Support Vector Regression
查看>>
会计基础_001
查看>>
Cordova 开发环境搭建及创建第一个app
查看>>
ajax请求拿到多条数据拼接显示在页面中
查看>>
小程序: 查看正在写的页面
查看>>
dedecms生成文档数据库崩溃 mysql daemon failed to start
查看>>
Linux的50个基本命令
查看>>
Objective-C中创建单例方法的步骤
查看>>
[转]无法安装MVC3,一直卡在vs10-kb2483190
查看>>
Codeforces 520B:Two Buttons(思维,好题)
查看>>
web框架-(二)Django基础
查看>>
Jenkins持续集成环境部署
查看>>
emoji等表情符号存mysql的方法
查看>>
Excel到R中的日期转换
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>