返回顶部
首页 > 资讯 > 精选 >Iconfont不能上传怎么维护Icon
  • 458
分享到

Iconfont不能上传怎么维护Icon

2023-07-02 17:07:19 458人浏览 独家记忆
摘要

本文小编为大家详细介绍“Iconfont不能上传怎么维护Icon”,内容详细,步骤清晰,细节处理妥当,希望这篇“Iconfont不能上传怎么维护Icon”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。引言使用 ic

本文小编为大家详细介绍“Iconfont不能上传怎么维护Icon”,内容详细,步骤清晰,细节处理妥当,希望这篇“Iconfont不能上传怎么维护Icon”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    引言

    使用 iconfont 有很多优势,比如只需要加载一次,全部图标都可以设置字号大小,颜色、透明度等,可以随意变换字体的形态,并且图标是矢量的,不会随着字体大小的变化失真,得益于 iconfont.cn 提供的便利,大多情况下,我们不必上传自己的图标,只需要便捷的搜索,就可以将图标加入到自己的项目图标库中,但最近工作中却遇到了比较严重的问题。

    现在做的事情

    我所在公司目前正在建设低代码平台,这个低代码平台可以说是无代码,需要从原先的各个应用中抽取部分页面和组件成为低代码组件,这样低代码平台就可以通过拖拽组件,形成一个有个性化的业务场景。如果 A 应用中的 A 组件需要更新,那么低代码中的组件也需要同步更新,所以说组件并不是单独的一个 npm 包,而是类似于 webpack5 模块联邦(Module Federation)打包出来的 remote(远程)组件。

    遇到的问题

    问题一:命名冲突

    Iconfont不能上传怎么维护Icon

    原先都是一个个独立的应用,都是可以独立部署独立运行,现在需要将这些应用组合在一起,形成一个新的应用,就遇到这个关于图标的问题。

    由于原先各个应用都是独立部署,所以项目中就直接引用了 iconfont 中的字体,命名也都叫 iconfont,一旦将这些组件组合到一起,命名冲突之外,字体中的 unicode 也会冲突。

    问题二:icon 图标库没交接

    由于 icon 图标库都是各个应用的前端开发者维护的,他们都在自己的用户名下建立项目, iconfont 图标库在 git 仓库之外,在人员变动的情况下,图标库的权限往往会忘记交接。

    问题三: iconfont 维护

    Iconfont不能上传怎么维护Icon

    正巧遇到 iconfont 维护,到目前为止虽然可以使用,但是想要上传新的图标还是不行。

    如何解决?

    问题一:全局替换

    最简单的方式是各个应用全局替换加前缀。

    - <span class="iconfont icon-xxx"></span>+ <span class="appaiconfont appAicon-xxx"></span>

    这样做当然没问题,但是到低代码平台那边就会加载 n 个字体文件,并且都是包含整个应用的字体,这就失去了使用 iconfont 的优势。

    问题二:要回权限

    虽然我们可以要回离职人员 iconfont 中项目的权限,短期可以解决项目上图标使用的问题,但是这个问题还是会有存在的可能。

    问题三:力所不及

    iconfont 目前也遇到了较大的问题,到目前为止还无法上传文件,对于我们这些 iconfont 的使用者来说只有等待。

    最终方案:使用 svg 代替 iconfont

    使用 svg 的优势

    • 完全离线化使用,不需要从 CDN 下载字体文件,图标不会因为网络问题呈现方块,也无需字体文件本地部署。

    • 没有 unicode,不会因为抽离组件而造成图标冲突

    • 在低端设备上 SVG 有更好的清晰度。

    • 支持多色图标。

    • svg 可以支持动画

    目前流行的组件库已经都使用了 svg 代理字体图标,比如 ant-design、Material-UI 等

    将引用的 iconfont 转变为本地 svg

    我们可以手动一个一个从 iconfont 图标库中下载 svg,但这样做未免有些过于麻烦。

    Iconfont不能上传怎么维护Icon

    在 iconfont 字体样式中,CSS 包含了这样一个路径,或者我们可以在项目 css 中直接找到这段代码,然后下载这个 svg。 打开 svg 会看到如下代码

    Iconfont不能上传怎么维护Icon

    一个 glyph 元素定义了 SVG 字体中的一个独立的字形,所以我们可以通过一个 node 脚本将这里面的独立字形转变 svg

    直接上代码

    const cheerio= require("cheerio")const fs= require("fs")const path= require("path")fs.readFile(path.join(__dirname,'./iconfont.svg'), 'utf8', function(err, data) {    if (err) throw err;    //console.log(data)        const $=cheerio.load(data)        $('glyph').each((index,item)=>{            const svgStr=`<svg  fill="currentColor" viewBox="0 0 1024 1024" xmlns="Http://www.w3.org/2000/svg" width="128" height="128">    <path d="${item.attribs.d}"></path></svg>`        fs.writeFile(path.join(__dirname,`./svg/${item.attribs['glyph-name']}.svg`),svgStr,(err,data)=>{            if (err) throw err;        })    });});

    cheerio 是一个 nodejs 下类似 Jquery api, 主要是利用 cheerio 将字符串中的 d glyph-name 写到一个 svg 文件中。 iconfont 中的字体图标大家都是 1024 所以,设置viewBox="0 0 1024 1024"

    看下效果

    Iconfont不能上传怎么维护Icon

    这下,可以不用问离职人员要 iconfont 权限了。

    svg 转为 React Component

    WEBpack 中我们可以使用一个 叫 svgr 的 loader,它可以将 SVG 转换为一个随时可用的 React 组件。

    首先使用 npm 安装 @svgr/webpack

    npm install @svgr/webpack --save-dev

    然后在 webpack.config.js 中加入配置

    const webpack = require('webpack');module.exports = {  entry: './src/index.js',  module: {    rules: [      {        test: /\.(js|jsx)$/,        exclude: /node_modules/,        use: ['babel-loader'],      },      {        test: /\.svg$/i,        type: 'asset',        resourceQuery: /url/, // *.svg?url      },      {        test: /\.svg$/i,        issuer: /\.[jt]sx?$/,        resourceQuery: { not: [/url/] }, // exclude react component if *.svg?url        use: ['@svgr/webpack'],      },    ],  },}

    使用方式

    import svg from './assets/file.svg?url'import Svg from './assets/file.svg'const App = () => {  return (    <div>      <img src={svg} width="200" height="200" />      <Svg width="200" height="200" viewBox="0 0 3500 3500" />    </div>  )}

    通过使用 ?url 区分是否使用 url 的方式引用。

    svgr 官网可以的 palayround 可以实时预览转换后的代码

    Iconfont不能上传怎么维护Icon

    我们只需要启动应用程序,Webpack 就会自动完成转换任务,再不需要再担心 SVG 了。你可以将 SVG 文件放在 src/文件夹中的任何位置,并将它们作为 React 组件导入使用。

    读到这里,这篇“Iconfont不能上传怎么维护Icon”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

    --结束END--

    本文标题: Iconfont不能上传怎么维护Icon

    本文链接: https://lsjlt.com/news/343106.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Iconfont不能上传怎么维护Icon
      本文小编为大家详细介绍“Iconfont不能上传怎么维护Icon”,内容详细,步骤清晰,细节处理妥当,希望这篇“Iconfont不能上传怎么维护Icon”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。引言使用 ic...
      99+
      2023-07-02
    • Iconfont不能上传如何维护Icon
      目录引言现在做的事情遇到的问题问题一:命名冲突问题二:icon 图标库没交接问题三: iconfont 维护如何解决?问题一:全局替换问题二:要回权限问题三:力所不及最终方案:使用 ...
      99+
      2024-04-02
    • 上传到GitHub后不能运行怎么办
      在GitHub上托管代码已经成为程序员的日常工作之一。然而,有时候即使我们经过了本地测试,上传到GitHub上却不能运行,这是令人困扰的问题。本文将探索一些常见的原因和解决方法。缺少依赖项如果你的程序需要特定的依赖项,但是你在提交时没有将它...
      99+
      2023-10-22
    • 京东上传不能用JavaScript怎么解决
      随着互联网的飞速发展,电商平台已经成为人们购物的首选之一。京东作为国内最大的在线零售商之一,一直以来都致力于提供更优质、更便捷、更安全的购物体验。然而,最近不少用户反映,在京东上传照片等操作时,无法使用JavaScript,导致上传图片等功...
      99+
      2023-05-14
    • 云服务器上的代码怎么维护
      维护云服务器上代码的方法:安装防火墙、杀毒软件等等安全防护工具。安装防泄密软件,对源代码进行加密。让管理员每周都登录上去查看,并备份数据,以免被不法分子篡改。对访问、读写权限进行分配,让对应的人做份内的事。...
      99+
      2024-04-02
    • 购买不用实名的vps怎么维护
      购买不用实名vps维护的方法:1、检测VPS的内存使用量,防止VPS出现系统资源不足的情况;2、排查VPS的网站访问日志,降低被恶意网络攻击的风险;3、检查VPS的硬盘使用情况,避免因硬盘空间不足导致死机;4、检查VPS系统负载和运行状态,...
      99+
      2024-04-02
    • 上海服务器租用怎么维护管理
      1. 定期备份数据:定期备份服务器的数据是非常重要的一项管理任务,以防止数据丢失或意外删除。2. 安全加固服务器:加固服务器的安全性...
      99+
      2023-06-08
      上海服务器租用 上海服务器 服务器
    • 虚拟空间不能FTP上传文件怎么办
      这期内容当中小编将会给大家带来有关虚拟空间不能FTP上传文件怎么办,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如果您的主机是租用的虚拟主机,当您上传文件时却不能上传检查原因如下.如果您的主机是租用的虚拟...
      99+
      2023-06-12
    • 怎么解决php不能上传中文文件问题
      这篇文章主要介绍“怎么解决php不能上传中文文件问题”,在日常操作中,相信很多人在怎么解决php不能上传中文文件问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决php不能上传中文文件问题”的疑惑有所...
      99+
      2023-06-20
    • 云服务器tomcat不能上传文件怎么解决
      如果云服务器上的Tomcat无法上传文件,可能是由于以下原因导致的:1. 权限问题:请确保Tomcat用户对上传文件的目录具有写入权...
      99+
      2023-08-22
      云服务器 tomcat
    • 织梦不能上传jpg格式怎么办如何解决
      到根目录下找到Include文件夹,然后找到uploadsafe.inc.php文件,打开文件,找到第54行的代码 复制代码代码如下: if(in_array(strtolower(trim(${$_key.'...
      99+
      2022-06-12
      不能上传 jpg格式
    • 亚马逊云服务器上传文件怎么上传不了
      1.检查网络连接 确保您的网络连接良好,可以尝试重新启动您的路由器或者将您的网线拔掉,然后重新连接网络。 2.检查文件上传控件 有些文件上传控件可能会阻止您上传文件。您可以尝试使用不同的上传控件来上传文件。 3.检查文件上传控件是否正确 ...
      99+
      2023-10-27
      亚马逊 上传文件 上传
    • gitee文件传输不上怎么办
      Gitee是一款备受欢迎的代码托管平台,许多人在使用该平台进行代码管理和分享。然而,在使用Gitee平台时,有时会发现上传文件的过程非常缓慢,甚至无法上传文件。这可能会造成很大的困扰,许多人会选择放弃使用该平台。本文将介绍Gitee文件传输...
      99+
      2023-10-22
    • word不能编辑怎么取消保护
      这篇“word不能编辑怎么取消保护”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“word不能编辑怎么取消保护”文章吧。wor...
      99+
      2023-07-01
    • 不实名香港云服务器租用怎么维护
      不实名香港云服务器租用维护的方法:1、及时安装系统补丁,并保持系统处于最新状态;2、安装防火墙并根据自身环境设置防火墙,以获得最佳防护效果;3、关闭不用的服务和端口,减少占用系统资源和系统安全隐患;4、定期备份数据,每月一次全系统备份和每周...
      99+
      2024-04-02
    • Vue怎么实现Excel上传功能
      这篇文章主要讲解了“Vue怎么实现Excel上传功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue怎么实现Excel上传功能”吧!1、HTML部分<Col span=&...
      99+
      2023-07-04
    • 亚马逊云服务器上传文件怎么上传不了了
      如果你使用的是亚马逊云服务器,上传文件可能会受到以下几种因素的影响: 网络连接问题:如果你的网络连接不稳定或者速度较慢,上传文件可能会出现延迟或者无法成功上传的情况。你可以尝试重新连接网络或者尝试使用其他的上传工具来提高上传速度。 文件...
      99+
      2023-10-27
      亚马逊 上传文件 上传
    • php上传图片后不能显示是什么原因?怎么解决?
      PHP上传图片是Web开发中常用的功能,如果出现无法显示图片的问题,可能是以下几个原因造成的:图片上传路径错误在PHP代码中设置了图片上传路径,如果该路径设置错误,上传的图片将无法正常保存到服务器上,导致无法显示图片。因此,在编写PHP代码...
      99+
      2023-05-14
      php
    • Ajax怎么实现文件上传功能
      这篇文章主要介绍“Ajax怎么实现文件上传功能”,在日常操作中,相信很多人在Ajax怎么实现文件上传功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ajax怎么实现文件上传...
      99+
      2024-04-02
    • Ajax怎么实现上传图像功能
      这篇“Ajax怎么实现上传图像功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Ajax怎么实现上传图像功能”文章吧。最终效...
      99+
      2023-06-29
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作