feat: svg解析

Re-1.0
咬轮猫 3 years ago
parent 3e8abf84d4
commit a49b836fa8

@ -31,6 +31,7 @@
"typescript": "^4.5.4", "typescript": "^4.5.4",
"vite": "^2.9.9", "vite": "^2.9.9",
"vite-plugin-eslint": "^1.6.1", "vite-plugin-eslint": "^1.6.1",
"vite-plugin-svg-icons": "^2.0.1",
"vite-plugin-windicss": "^1.8.6", "vite-plugin-windicss": "^1.8.6",
"vue-eslint-parser": "^9.0.3", "vue-eslint-parser": "^9.0.3",
"vue-tsc": "^0.34.7", "vue-tsc": "^0.34.7",

File diff suppressed because it is too large Load Diff

@ -0,0 +1,15 @@
<template>
<svg aria-hidden="true">
<use :xlink:href="symbolId" />
</svg>
</template>
<script setup lang="ts">
import { computed } from 'vue';
const props = defineProps({
name: {
type: String,
required: true
}
});
const symbolId = computed(() => `#svg-${props.name}`);
</script>

@ -2,6 +2,7 @@ import { createApp } from 'vue';
import App from './App.vue'; import App from './App.vue';
import router from './router/index'; import router from './router/index';
import 'virtual:windi.css'; import 'virtual:windi.css';
import 'virtual:svg-icons-register';
const app = createApp(App); const app = createApp(App);
app.use(router); app.use(router);
app.mount('#app'); app.mount('#app');

@ -1,7 +1,9 @@
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue'; import vue from '@vitejs/plugin-vue';
import { resolve } from 'path';
import eslintPlugin from 'vite-plugin-eslint'; import eslintPlugin from 'vite-plugin-eslint';
import WindiCSS from 'vite-plugin-windicss'; import WindiCSS from 'vite-plugin-windicss';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
// https://vitejs.dev/config/ // https://vitejs.dev/config/
export default defineConfig({ export default defineConfig({
plugins: [ plugins: [
@ -10,6 +12,12 @@ export default defineConfig({
cache: false, cache: false,
include: ['src/**/*.vue', 'src/**/*.ts', 'src/**/*.tsx'] // 检查的文件 include: ['src/**/*.vue', 'src/**/*.ts', 'src/**/*.tsx'] // 检查的文件
}), }),
WindiCSS() WindiCSS(),
createSvgIconsPlugin({
// 指定需要缓存的图标文件夹
iconDirs: [resolve(process.cwd(), 'src/assets/svgs')],
// 指定symbolId格式
symbolId: 'svg-[name]'
})
] ]
}); });

Loading…
Cancel
Save