使用svg-sprite-loader 遇到的问题

举报
拿我格子衫来 发表于 2022/03/17 23:13:00 2022/03/17
【摘要】   趁记忆还热乎   赶紧过来记录一下自己踩坑的记录 现有的项目是从另一个项目移植过来的, 并不是完全移植  为了减小项目的体积  前端组长将一些暂时用不到的组件 node包都剔除了  这也就引出了一下的问题 今天调试菜单图标的时候 发现项目中菜单的图片渲染用到的是icon...

  趁记忆还热乎   赶紧过来记录一下自己踩坑的记录

现有的项目是从另一个项目移植过来的, 并不是完全移植  为了减小项目的体积  前端组长将一些暂时用不到的组件 node包都剔除了  这也就引出了一下的问题

今天调试菜单图标的时候 发现项目中菜单的图片渲染用到的是icon-svg 这个组件 但怎么找都找不到这个组件  于是我才原有项目中找了一下 copy过来

 

但这样子仍然不行啊,svg标签出来了 但样式  svg内容没有出来, 于是继续把样式扒过来, 样式对了 但svg内容就是死活出不来,   于是我一直搜这个svg在哪个地方引入的

怎么注入到页面的  折腾了一上午,终于让我发现了 一句话 原项目中这样写


 


  
  1. Vue.component('icon-svg', IconSvg)
  2. const requireAll = requireContext => requireContext.keys().map(requireContext)
  3. const req = require.context('./svg', false, /\.svg$/)
  4. const iconMap = requireAll(req)
  5. generateIconsView.generate(iconMap) // just for views/icons , you can delete it

 

于是我搜索这句话什么意思  

后来我发现我少引入了svg的loader   对比了二个项目中的webpack的webapck.base.conf.js 把svg-sprite-loader 引入 

引入之后 配置好编译好的目录


  
  1. {
  2.         test: /\.svg$/,
  3.         loader: 'svg-sprite-loader',
  4.         include: [resolve('src/icons')],
  5.         options: {
  6.           symbolId: 'icon-[name]'
  7.         }
  8.       },

 

启动之后 发现项目起不来了 麻蛋

仔细看错误信息 原来在编译的时候 找不到svg文件里 没有<svg> 标签    怎么会这样  明明有啊 

 

后来我又搜了一下这个出错的问题  又看了一下 webapck.base.conf.js 这个文件 发现还有一个loader 处理了svg文件


  
  1. {
  2.         test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
  3.         loader: 'url-loader',
  4.         exclude: [resolve('src/icons')],
  5.         options: {
  6.           limit: 10000,
  7.           name: utils.assetsPath('img/[name].[hash:7].[ext]')
  8.         }
  9.       },

二个loader都处理了svg文件 导致svg-sprite-loader'在编译的时候  并不是svg源文件 于是出错了

 

解决方案:

为二个loader 设置编译的文件  

 exclude: [resolve('src/icons')], 排除 目录src/icon   

 include: [resolve('src/icons')],  只对src/icon 目录生效

 

OK

该做的都做了  再不出现图标 我就真的要哭了

 

启动

打开首页

....

...

...

.....

.....

 

 

出现了  出现了  

哈哈哈哈哈哈.............

我最喜欢踩坑了  我最喜欢填坑了  么么哒 

 

文章来源: fizzz.blog.csdn.net,作者:拿我格子衫来,版权归原作者所有,如需转载,请联系作者。

原文链接:fizzz.blog.csdn.net/article/details/78818919

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。