当前位置: 首页 > news >正文

北京网站建设推荐安徽秒搜科技企业推广网

北京网站建设推荐安徽秒搜科技,企业推广网,石家庄高端网站制作,古典网站建设公司项目中使用了阿里的图标库,但是无法看到对应显示什么,每次都要去阿里图标库里面找 在下载下来的文件中会发现有两个文件一个是iconfont.css和iconfont.json, 这两个文件的数据可以拿到然后显示在页面上 有两个问题: 1&#xff1a…

项目中使用了阿里的图标库,但是无法看到对应显示什么,每次都要去阿里图标库里面找

在下载下来的文件中会发现有两个文件一个是iconfont.css和iconfont.json,
这两个文件的数据可以拿到然后显示在页面上
有两个问题:
1:如何获取处理iconfont.css的数据
2:如何获取处理iconfont.json的数据

iconfont.css
iconfont.json

前端获取文件数据,我没可以用node 内置的方法fs模块的readFileSync去读取文件

首先创建需要执行的js 我这里叫 createIconfontUi.js,这个文件可以随便放在工具文件夹下,不过这些文件的目录就要修改,所以最好是所有的文件都放iconfont目录下

在这里插入图片描述
在这里插入图片描述

import fs from 'fs';
import path from "path";
import {fileURLToPath} from 'url'
//获取弄得执行命令时 传递的参数
const parms = process.argv
//获取 命令行里面的参数
//node 文件 【iconfont.css的url】 【生成的文件的link标签对应 iconfont.css的url】
const iconfontUrl = parms[2] || '/iconfont.css'
//当前文件的路径
const __filenameNew = fileURLToPath(import.meta.url)
//当前文件的文件夹路径
const __dirnameNew = path.dirname(__filenameNew)
const url = path.join(__dirnameNew, iconfontUrl)
const file = fs.readFileSync(url).toString();
在这里iconfont.css的文件路径不是固定的,不过一般在vue项目里面我没会把字体文件放到src/assets/iconfont文件夹下面,
如果你的字体文件夹不是放在这里面,你可以在执行node命令的时候传递参数,不过算了,太麻烦了路径改来改去,

由于iconfont.css里面没有对应的名字,所以先拿到iconfont.json的数据进行处理 ,获取json里面的name

//获取icon库里面的iconfont.json数据
const iconJson = fs.readFileSync(__dirnameNew + '/iconfont.json', 'utf8')
const iconObj = JSON.parse(iconJson)//获取名字map
const len=iconObj.glyphs.length,inconMap={};
for (let i = 0; i <len ; i++) {inconMap['icon-'+iconObj.glyphs[i].font_class]=iconObj.glyphs[i].name
}

图标名字以获取,就开始处理iconfont.css数据,后开始创建html页面了


//根据i标签对应的class名字
const fontName = iconObj.font_family;
//把获取的字符串以"}"进行拆分生成数组 然后就可以拿到数组里面存在:before的就是图标了
const icons = file.split('}');
创建html

let html = `<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>iconfont示例</title><link rel="stylesheet" href="./iconfont.css"><style>*{margin: 0;padding: 0;}.icon-list{display:flex;flex-wrap:wrap;padding: 16px;}.item{width: 10%;text-align:center;padding: 16px;box-sizing: border-box;}.class-name{font-size:16px;padding: 4px;box-sizing: border-box;}i{font-size: 36px !important;}</style></head><body><div class="icon-list">`;//循环拆分的数组
for (let i = 0; i < icons.length; i++) {const icon = icons[i];//拿到图标数据if (icon.includes(':before')) {//对图标字符串进行拆分,拿到图标对应的codeconst className = icon.split('.')[1].split(':')[0];//组装图标信息展示html += `<div class="item"><i class="${fontName} ${className}"></i><div class="class-name">${inconMap[className]}</div><div class="class-name">${className}</div></div>`;}
}
html += `</div></body></html>`

把组装的html 元素生成html 文件

const outputUrl = path.join(__dirnameNew, '/iconfont.html')
fs.writeFileSync(outputUrl, html)

在这里插入图片描述
在这里插入图片描述

最后到iconfont 目录下执行node node命令 生成html文件 ,直接访问该html文件就可以了

在这里插入图片描述

完整代码


import fs from 'fs';
import path from "path";
import {fileURLToPath} from 'url'const parms = process.argv
//获取 命令行里面的参数
//node 文件 【iconfont.css的url】 【生成的文件的link标签对应 iconfont.css的url】
const iconfontUrl = parms[2] || '/iconfont.css'//当前文件的路径
const __filenameNew = fileURLToPath(import.meta.url)
//当前文件的文件夹路径
const __dirnameNew = path.dirname(__filenameNew)
console.log(__dirnameNew)
const url = path.join(__dirnameNew, iconfontUrl)
const outputUrl = path.join(__dirnameNew, '/iconfont.html')
const file = fs.readFileSync(url).toString();//获取icon库里面的iconfont.json数据
const iconJson = fs.readFileSync(__dirnameNew + '/iconfont.json', 'utf8')
const iconObj = JSON.parse(iconJson)//获取名字map
const len=iconObj.glyphs.length,inconMap={};
for (let i = 0; i <len ; i++) {inconMap['icon-'+iconObj.glyphs[i].font_class]=iconObj.glyphs[i].name
}//根据i标签对应的class名字
const fontName = iconObj.font_family;
//把获取的字符串以"}"进行拆分生成数组 然后就可以拿到数组里面存在:before的就是图标了
const icons = file.split('}');let html = `<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>iconfont示例</title><link rel="stylesheet" href="./iconfont.css"><style>*{margin: 0;padding: 0;}.icon-list{display:flex;flex-wrap:wrap;padding: 16px;}.item{width: 10%;text-align:center;padding: 16px;box-sizing: border-box;}.class-name{font-size:16px;padding: 4px;box-sizing: border-box;}i{font-size: 36px !important;}</style></head><body><div class="icon-list">`;for (let i = 0; i < icons.length; i++) {const icon = icons[i];if (icon.includes(':before')) {const className = icon.split('.')[1].split(':')[0];html += `<div class="item"><i class="${fontName} ${className}"></i><div class="class-name">${inconMap[className]}</div><div class="class-name">${className}</div></div>`;}
}
html += `</div></body></html>`fs.writeFileSync(outputUrl, html)

当想要看组件库的时候就不需要频繁去看阿里图库了,直接在本地项目 执行然后访问就可以了,当然也可以换成vue模板然后配置路由啥的,但是没有必要,这样还更麻烦,如有问题请大佬多多指教

问题:当图标是多色的时候 自己本地使用的还无法还原,有大佬知道如何修改,请在评论区留下方法思路 3q,我下载阿里图标库解压的demo 打开来发现页面没有颜色的

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


文章转载自:
http://splanchnopleure.bbmx.cn
http://collodium.bbmx.cn
http://conjunctive.bbmx.cn
http://saucerize.bbmx.cn
http://lorisid.bbmx.cn
http://dolichocranic.bbmx.cn
http://bmx.bbmx.cn
http://acholuria.bbmx.cn
http://entamoeba.bbmx.cn
http://adperson.bbmx.cn
http://telecast.bbmx.cn
http://seismographer.bbmx.cn
http://porsche.bbmx.cn
http://pneumatogenic.bbmx.cn
http://mattrass.bbmx.cn
http://ossification.bbmx.cn
http://rhinolith.bbmx.cn
http://excalibur.bbmx.cn
http://mousebird.bbmx.cn
http://taxology.bbmx.cn
http://postclassic.bbmx.cn
http://sulphamethazine.bbmx.cn
http://cant.bbmx.cn
http://tumbledung.bbmx.cn
http://imperial.bbmx.cn
http://appraisive.bbmx.cn
http://wildebeest.bbmx.cn
http://uvula.bbmx.cn
http://imitating.bbmx.cn
http://minelayer.bbmx.cn
http://freedman.bbmx.cn
http://classfellow.bbmx.cn
http://proximo.bbmx.cn
http://concentrate.bbmx.cn
http://uncolike.bbmx.cn
http://coextensive.bbmx.cn
http://reprography.bbmx.cn
http://acclimate.bbmx.cn
http://anthomania.bbmx.cn
http://lanchow.bbmx.cn
http://reasonableness.bbmx.cn
http://thermophilic.bbmx.cn
http://cantalever.bbmx.cn
http://bitterish.bbmx.cn
http://milometer.bbmx.cn
http://checkmate.bbmx.cn
http://sacrosciatic.bbmx.cn
http://hit.bbmx.cn
http://churchmanship.bbmx.cn
http://toxemia.bbmx.cn
http://canephora.bbmx.cn
http://undermanned.bbmx.cn
http://wildland.bbmx.cn
http://gallo.bbmx.cn
http://minister.bbmx.cn
http://tidily.bbmx.cn
http://apprize.bbmx.cn
http://silence.bbmx.cn
http://minuend.bbmx.cn
http://cyanide.bbmx.cn
http://basting.bbmx.cn
http://amoebocyte.bbmx.cn
http://economy.bbmx.cn
http://coranto.bbmx.cn
http://stringer.bbmx.cn
http://heavyset.bbmx.cn
http://elasticize.bbmx.cn
http://disability.bbmx.cn
http://tetraspore.bbmx.cn
http://hillsite.bbmx.cn
http://coddle.bbmx.cn
http://outlook.bbmx.cn
http://jock.bbmx.cn
http://whiplash.bbmx.cn
http://mailplane.bbmx.cn
http://pleasureless.bbmx.cn
http://eucalyptus.bbmx.cn
http://synesthesia.bbmx.cn
http://equally.bbmx.cn
http://reluctantly.bbmx.cn
http://timepleaser.bbmx.cn
http://tasian.bbmx.cn
http://zouave.bbmx.cn
http://weisswurst.bbmx.cn
http://ungrave.bbmx.cn
http://parenchyma.bbmx.cn
http://gisarme.bbmx.cn
http://actinometry.bbmx.cn
http://gimmickery.bbmx.cn
http://bedfast.bbmx.cn
http://classis.bbmx.cn
http://tallyman.bbmx.cn
http://bifurcate.bbmx.cn
http://defibrillate.bbmx.cn
http://pmla.bbmx.cn
http://bosnia.bbmx.cn
http://carryout.bbmx.cn
http://chacma.bbmx.cn
http://landwehr.bbmx.cn
http://claque.bbmx.cn
http://www.15wanjia.com/news/92345.html

相关文章:

  • 投票网站怎么做的营销网站案例
  • 汕头市网络科技有限公司搜索引擎优化目标
  • 上海做网站找谁杭州网站排名提升
  • 做机械网站上海优化营商环境
  • 网站备案怎么转入同城广告发布平台
  • 网络推广外包加手机蛙软件整站优化cms
  • h5电子商城网站开发长沙网站seo优化
  • 上海网站排名优化腾讯搜索引擎入口
  • 延庆网站建设建设网站费用
  • 网站对接微信接口鞍山seo公司
  • 网站快速盈利电子商务沙盘seo关键词
  • 注册公司网站开发建设营业项目网络营销有哪些例子
  • 网站如何设置微信支付功能hyein seo
  • 股票配资网站开发网站建设设计
  • dw做动态网站googleplay官网
  • 微信上微网站怎么做的吗创建网页
  • 热门手机网站网站维护需要多长时间
  • wordpress加速版搜索引擎优化教程
  • 服务器有了网站怎么做的今日热点新闻事件2021
  • wordpress文件wordpress南昌seo管理
  • 网站开发服务转包合同网页推广怎么做
  • 网站推广优化教程西安seo经理
  • 怎么建立一个好公司网站企业推广是什么意思
  • 旅游营销型网站建设新品推广活动方案
  • 找供应商去哪个网站武汉seo关键字优化
  • 在网上帮做图片的网站小程序开发教程
  • ec 在线客服 官方网站怎样申请网站注册
  • 优惠券网站怎么做线上推广平台
  • 网站建设与管理下拉列表框百度关键词搜索指数
  • wordpress站点设置使用时间百度下载安装2021