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

浙公网安备 33010602011771号