目前网上搜索的大部分方法是:

  • 首先要引入 npm install snapsvg npm i -D imports-loader
  • 在 vue.config.js里面写入
 module: { 
          rules: [ 
                  test: require.resolve('snapsvg/dist/snap.svg.js'),
                  use: 'imports-loader?wrapper=window&additionalCode=module.exports=0;', 

ps: 坑中坑。。。

  • 新的 imports-loader 会报错
    • TypeError: this.getOptions is not a function
  • 此时应该删除 imports-loader 并安装旧版本 "imports-loader": "^1.2.0",
  • npm i -D imports-loader@^1.2.0
不要对建筑大意。 BUG:缩小版本不起作用 原因:svgElem.reRunMixin 使用 function.name 属性来执行对象克隆的一些逻辑,但库被混淆了名称丢失。 好吧他妈的我... 最后更新时间 10:54 pm(2014 年 1 月 4 日)Jordan Yu,2014 参考:https://www.zhangxinxu.com/wordpress/2014/07/introduce-svg-sprite-technology/ 参考:https://cisy.me/webpack-svg-sprite/ 1、安装插件: npm i -S svg-sprite-loader 2、更改build/webpack.base.conf.js配置文件 npm install imports-loader 3、之前看了别人的建议,修改webpack,但是没有成功,控制台没有报错,但是页面上空白,所以在需要Snap的页面中引入: import Snap from 'imports-loader?this=>window,fix=>module.exports=0!snapsvg/dist/snap.sv imports-loader版本要小于1.0.0(我开始装了最新版本3.1.1,会报错) snapsvg和imports-loader最好都装在devDependencies中 2、在main.js引入sna 在react/vue中可以使用snapsvg,然而在使用时会碰上巨坑“Uncaught TypeError: Cannot read property ‘on’ of undefined”,这个问题可以用以下方法解决。 首先需要先npm install snapsvg将其引入,其次需要引入npm install imports-loader,然后在使用时需要对其进行一定的处理如下: impor... 近期做项目从其他人项目里迁移的一个复杂动画出现了问题,Cannot read properties of undefined (reading on),排查问题出自snapsvg插件。最后发现这个问题出现是因为未做一些配置,分为两步:1、下载imports-loader插件,执行 npm i imports-loader ,这个插件的坑在于版本,我的snapsvg插件是0.5.1,对应的imports-loader插件版本是0.8.0 2、vue.config.js中增加配置:... 网上大多数的教程都是vue cli旧版的。使用vue cli 3/4搭建项目使用svg自动导入的方法: 1、安装 svg-sprite-loader、svgo这两个库 npm install --save-dev vue-svg-sprite-loader npm install -g svgo 2、在根目录创建vue.config.js,如果存在就不需要创建,然后添加一下配置 const path = require('path') function resolve(dir) { 在vue中使用,需要先npm install snapsvg将其引入,其次需要引入npm install imports-loader,然后在使用时会碰上巨坑Uncaught TypeError: Cannot read property ‘on’ of undefined,这时我们就需要在使用时对其进行一定的处理如下: import Snap from 'imports-loader?this=... 一、SVG定义 SVG全称是Scalable Vector Graphics,即可伸缩矢量图,用于描述二维矢量图形的图形格式。在web中使用SVG可以解决位图放大失真的问题。首先,不要把SVG和CSS、Canvas、HTML搞混,他们之间并没有关系。简单的理解,它是图形的另一种格式,例如它和常见的图片格式.png、.jpg、.gif等是一类。 SVG是通过XML的形式写在HTML文档中的。SV... 结局:vue-loader@13.X 降级到 vue-loader@12.X 即可解决 先来说一下exportdefault 与 require 和 import的关系通过exportdefault导出...