svg图标封装

PS:注意如果在iconfont上下载的SVG图标,请把fill="#ffffff"清除掉,不然自定义样式无法作用到图标上。

PS:webpack3及以下和webpack4配置略有不同, webpack4的SVG配置请参考 潘


npm install -g svgo

svgo -f ./src/icons/svg

npm install svg-spribe-loader -D

配置build/webpack.base.conf.js

{

test: /\.svg$/,

loader: 'svg-sprite-loader',

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

options: {

symbolId: 'icon-[name]'

}

},


{

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

loader: 'url-loader',

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

options: {

limit: 10000,

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

}

},

组件:svgicon.vue

、、、



、、、


src/icons/index.js

、、、

import Vue from 'vue'

import SvgIcon from '@/components/SvgIcon' // svg组件


// register globally

Vue.component('svg-icon', SvgIcon)


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

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

requireAll(req)

、、、

main.js

import ‘@/icons’

你可能感兴趣的:(svg图标封装)