# vite-plugin-svg
**Repository Path**: webxrd/vite-plugin-svg
## Basic Information
- **Project Name**: vite-plugin-svg
- **Description**: 在vite中使用svg文件时更方便。
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: master
- **Homepage**: https://gitee.com/webxrd/vite-plugin-svg-icon/blob/master/readme.md
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 3
- **Created**: 2022-05-16
- **Last Updated**: 2025-01-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## 插件作用
使在vite中使用svg文件时更方便。支持热更新。
## 安装
```shell
npm i @webxrd/vite-plugin-svg -D
```
## 使用示例:
### 目录结构
```text
src
assets
icons
user.svg
lock.svg
repeat.svg
other
icons
check.svg
circle.svg
repeat.svg
main.js
vite.config.js
```
### vite.config.js
```javascript
import path from 'node:path';
import {vitePluginSvg} from "@webxrd/vite-plugin-svg";
// 如果需要热更新功能,可以安装:npm i vite-plugin-restart -D
import ViteRestart from 'vite-plugin-restart'
import {defineConfig} from 'vite';
import vue from '@vitejs/plugin-vue';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
// ...other plugin
vitePluginSvg({
// 必要的。必须是绝对路径组成的数组。
// 重复的文件名,会按照后来优先原则覆盖。比如 other/icons/repeat.svg 会覆盖 icons/repeat.svg。
iconDirs: [
path.resolve(__dirname, 'src/assets/icons'),
path.resolve(__dirname, 'src/assets/other/icons'),
],
symbolIdFormat: 'icon-[name]'
}),
// 热更新
ViteRestart({
restart: [
'src/assets/icons/**/*.svg',
'src/assets/other/icons/**/*.svg',
]
}),
]
});
```
### 使用图标
配置完以后就可以轻松使用 src/assets/icons 里的的图标了
```html
```
## 在vite+vue3中使用
### 封装公用组件:components/SvgIcon.vue
```html
```
### 在组件中使用。(或者注册在全局,使用起来更方便)
```html
```