VUE-SVG引用

VUE-SVG引用

 

第一种方式

svg-sprite-loader的一种方式

 https://www.cnblogs.com/lijianjian/p/10901880.html

 

 

第二种

vue-svg-icon-loader

npm install --save-dev vue-svg-icon-loader
npm install vue-svg-component-runtime

 

 去配置vue.config.js

 

const path = require('path')
function resolve (dir) {
  return path.join(__dirname, './', dir)
}

module.exports = {
 
  chainWebpack: config => {
    const svgRule = config.module.rule('svg')
    svgRule.uses.clear()
    svgRule
      .oneOf('inline')
      .use('vue-svg-icon-loader')
      .loader('vue-svg-icon-loader')
      .end()
      .end()
      .oneOf('external')
      .use('file-loader')
      .loader('file-loader')
      .options({
        name: 'assets/[name].[hash:8].[ext]'
      })
    if (process.env.NODE_ENV === 'production') {
      // 解决低版本浏览器 es567错误问题
      // 默认情况下 babel-loader 会忽略所有 node_modules 中的文件。
      // 如果你想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来
      config.module.rule('compile')
        .test(/\.js$/)
        .include
        .add(resolve('src'))
        .add(resolve('test'))
        .add(resolve('node_modules'))
        .end()`在这里插入代码片`
        .use('babel')
        .loader('babel-loader')
        .options({
          presets: [
            ['@babel/preset-env', {
              modules: false
            }]
          ]
        });
    }
  },
}

启动项目

把svg放在assets目录下

 

<template>
  <div>
    <Project class="icon"/>
  </div>
</template>

<script>
import Project from '../assets/svg/project.svg'

export default {
  components: {
    Project,
  },
}
</script>

<style>
.icon {
  display: inline-block;
  vertical-align: middle;
  width: 20px;
  height: 20px;
}
</style>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

引用:https://www.jianshu.com/p/557cea5fdbd9

引用:https://blog.csdn.net/weixin_43493493/article/details/112369014

posted @ 2021-05-14 12:08  无心々菜  阅读(57)  评论(0编辑  收藏  举报