vuecli3的svgicon_vue-cli项目中使用svg图标

本文档详细介绍了如何在Vue项目中引入SVG图标,包括从iconfont下载SVG图标,通过webpack的require.context自动引入所有图标,配置svg-sprite-loader以避免与url-loader的冲突,以及在代码中使用图标的方法。通过这些步骤,可以实现SVG图标的集中管理和方便使用。
摘要由CSDN通过智能技术生成

1.在src/icons/svg存放icon矢量图(可以去iconfont查找合适的icon,选择svg下载)

2.在src/icons/index.js中使用webpack的require.context自动引入src/icons下面所有的图标。

const req = require.context('./svg', false, /\.svg$/)

const requireAll = requireContext => requireContext.keys().map(requireContext)

requireAll(req)

3.在webpack.base.config.js中配置svg-sprite-loader

{

test: /\.svg$/,

loader: 'svg-sprite-loader',

include: [resolve('src/icons')],

options: {

symbolId: 'icon-[name]' // name代表图标的名字

}

}

注意:由于vue-cli默认情况下会使用 url-loader 对svg进行处理(如下代码),会将它放在/img 目录下,所以这时候我们引入svg-sprite-loader 会引发一些冲突。我们可以使用exclude: [resolve('src/icons')],让url-loader只处理除此文件夹之外的svg。

{

test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,

loader: 'url-loader',

exclude: [resolve('src/icons')], // 使用exclude排除src/icons,让url-loader只处理除此文件夹之外的svg

options: {

limit: 10000,

name: utils.assetsPath('img/[name].[hash:7].[ext]')

}

}

4.使用图标(假定此时src/icons中有一个delete.svg的图标)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值