之前天生iconfont字体图标,是用的https://icomoon.io/app/ 或者是阿里的https://www.iconfont.cn/ ,将UI给的svg图导入来天生。然则一向有个题目,如果须要再次到场几个图标时,又须要从新搞一遍,很贫苦。
而运用svg-sprite-loader的体式格局,也不是很轻易,而且在body下插进去一个超大的svg标签,影响机能不说,看着这么乱的代码真是挺难熬痛苦。。而且有些UI库比运用字体图标会比较方便。别的字体文件特别是woff也比svg要小许多。
因而近来抽时间参考开源代码搞了个webpack插件,自动用svg天生iconfont字体图标,支撑热更新。
字体及css的天生流程:
热重载(hot-reload)流程:
运用这个插件后,开辟时在src/iconfont/svgs目录下,修正或增加、删除svg文件时,就能够自动天生字体图标(支撑ttf,woff2,woff,eot,svg)及配套从css款式、html预览了;同时热更新马上能够看到结果。
只需一个配置文件,并以此到场到webpack的plugins即可:
const WebpackIconfontPluginNodejs = require('webpack-iconfont-plugin-nodejs');
const path = require('path');
var dir = 'src/iconfont'
module.exports = new WebpackIconfontPluginNodejs({
fontName: 'my-icon',
cssPrefix: 'fii',
svgs: path.join(dir, 'svgs/*.svg'),
template: path.join(dir, 'css.njk'),
fontsOutput: path.join(dir, 'fonts/'),
cssOutput: path.join(dir, 'fonts/font.css'),
htmlOutput: path.join(dir, 'fonts/_font-preview.html'),
jsOutput: path.join(dir, 'fonts/fonts.js'),
formats: ['ttf', 'woff', 'svg'],
})
Byebye了我滴icomoon们!
源码在这:https://github.com/hzsrc/webp…
感兴趣的小伙伴能够尝尝~
下载源码装置后直接跑npm run dev就可看结果了