摘要:之前生成字體圖標(biāo),是用的或者是阿里的,將給的圖導(dǎo)入來生成。而且有些庫比使用字體圖標(biāo)會(huì)比較便利。于是最近抽時(shí)間參考開源代碼搞了個(gè)插件,自動(dòng)用生成字體圖標(biāo),支持熱更新。
之前生成iconfont字體圖標(biāo),是用的https://icomoon.io/app/ 或者是阿里的https://www.iconfont.cn/ ,將UI給的svg圖導(dǎo)入來生成。但是一直有個(gè)問題,假如需要再次加入幾個(gè)圖標(biāo)時(shí),又需要重新搞一遍,很麻煩。
而使用svg-sprite-loader的方式,也不是很方便,而且在body下插入一個(gè)超大的svg標(biāo)簽,影響性能不說,看著這么亂的代碼真是挺難受。。而且有些UI庫比使用字體圖標(biāo)會(huì)比較便利。另外字體文件特別是woff也比svg要小很多。
于是最近抽時(shí)間參考開源代碼搞了個(gè)webpack插件,自動(dòng)用svg生成iconfont字體圖標(biāo),支持熱更新。
插件源碼:webpack-iconfont-plugin-nodejs執(zhí)行以下命令,可直接查看插件效果:
git clone https://github.com/hzsrc/webpack-iconfont-plugin-nodejs.git cd webpack-iconfont-plugin-nodejs npm install npm run dev原理及用法
字體及css的生成流程:
熱重載(hot-reload)流程:
使用這個(gè)插件后,開發(fā)時(shí)在src/iconfont/svgs目錄下,修改或添加、刪除svg文件時(shí),就可以自動(dòng)生成字體圖標(biāo)(支持ttf,woff2,woff,eot,svg)及配套從css樣式、html預(yù)覽了;同時(shí)熱更新立即可以看到效果。
只需一個(gè)配置文件,并以此加入到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們!
感興趣的小伙伴可以試試~
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/100312.html
摘要:所以實(shí)現(xiàn)小圖標(biāo)時(shí)雪碧圖跟圖標(biāo)字體會(huì)在一個(gè)網(wǎng)站共存,自定義圖標(biāo)字體為什么比較耗時(shí),且太復(fù)雜圖標(biāo)無法實(shí)現(xiàn)請(qǐng)往下看開發(fā)流程就了解了。參考資料細(xì)談淺談圖標(biāo)字體向下兼容優(yōu)雅降級(jí)技術(shù)繪制小圖標(biāo)技巧雪碧圖圖標(biāo)字體矢量小圖標(biāo)設(shè)計(jì)本文對(duì)應(yīng)源碼源碼地址演示地址 showImg(https://segmentfault.com/img/bVRnAC?w=431&h=220); 之前寫了一篇關(guān)于雪碧圖的博文,...
webpack基于node,因此想要學(xué)習(xí)webpack首先要安裝node。webpack4要安裝node8.2以上版本。 1、安裝webpack 為什么選擇本地安裝,主要是由于以后介紹熱更新這一部分不會(huì)報(bào)錯(cuò),如果全局安裝熱更新就會(huì)報(bào)錯(cuò),以本部分為基礎(chǔ)依次介紹,保證各部分不會(huì)出錯(cuò)。 mkdir webpack-test cd webpack-test npm init //初始化npm,都選擇默認(rèn),...
摘要:構(gòu)建構(gòu)建就是把源代碼轉(zhuǎn)換成發(fā)布到線上的可執(zhí)行代碼,包括如下內(nèi)容。自動(dòng)刷新監(jiān)聽本地源代碼的變化,自動(dòng)重新構(gòu)建刷新瀏覽器。自動(dòng)發(fā)布更新完代碼后,自動(dòng)構(gòu)建出線上發(fā)布代碼并傳輸給發(fā)布系統(tǒng)。將文件放入到項(xiàng)目中,在中新建一個(gè)放字體圖標(biāo)的文件夾。 項(xiàng)目地址 github.com/wudiufo/Web… 知識(shí)點(diǎn)概覽: Loader,HMR ,Create React App, Caching, Plug...
摘要:但它仍有缺陷字體需要加載資源有時(shí)候可能會(huì)出現(xiàn)鋸齒只能被渲染成單色或者的漸變色所以我們要繼續(xù)進(jìn)化。直立人之使用,這里所謂的進(jìn)化并不是本身的進(jìn)化,因?yàn)椴⒉煌碛凇kS著外界因素的進(jìn)化,的淘汰,的開始,的機(jī)會(huì)變到來了。 南方古猿之 png sprite showImg(https://segmentfault.com/img/remote/1460000008199114?w=822&h=288...
摘要:圖片資源作為與用戶交互的界面元素,在客戶端產(chǎn)品中起到了非常重要的角色作用。在應(yīng)用開發(fā)中,移動(dòng)端與的圖片使用策略也有所不同。端較大的內(nèi)存容量,快速的渲染能力使各類型圖片資源都能得到較好的使用。圖片資源( jpeg、png、svg、webp ... )作為與用戶交互的界面元素,在客戶端產(chǎn)品中起到了非常重要的角色作用。在應(yīng)用開發(fā)中,移動(dòng)端與PC的圖片使用策略也有所不同。PC端較大的內(nèi)存容量,快速的...
閱讀 2473·2021-11-24 09:39
閱讀 3406·2021-11-15 11:37
閱讀 2251·2021-10-08 10:04
閱讀 3965·2021-09-09 11:54
閱讀 1883·2021-08-18 10:24
閱讀 1034·2019-08-30 11:02
閱讀 1793·2019-08-29 18:45
閱讀 1651·2019-08-29 16:33