迁移项目发现 vue 2 + webpack 的方法到这不好使了,于是另起炉灶。记录一下这个适用 Vite 2 + Vue 3 的解决方案。
1. 先安装插件:
vite-plugin-svg-icons
:GitHub文档
npm i vite-plugin-svg-icons -D
// 或
yarn add vite-plugin-svg-icons -D
2. 配置插件
vite.config.js / vite.config.ts
import viteSvgIcons from 'vite-plugin-svg-icons';
import path from 'path'; // ts如果报错 npm i @types/node -D
export default () => {
return {
plugins: [
viteSvgIcons({
// 配置你存放 svg 图标的目录
iconDirs: [path.resolve(process.cwd(), 'src/icons/svg')],
// 定义 symbolId 格式
symbolId: 'icon-[dir]-[name]',
}),
],
};
};
3. SvgIcon 组件实现
src/components/SvgIcon.vue
4. 在 main.js / main.ts
引入插件注册脚本
import 'vite-plugin-svg-icons/register';
5. 在 main.js / main.ts
全局注册 svg 组件
(单独在用到的组件引入也可)
import svgIcon from './components/SvgIcon.vue'
app.component('svg-icon', svgIcon)
6. 使用方法:
转载自:vite2.0-vue3如何快速实现svg图标