-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.ts
37 lines (35 loc) · 894 Bytes
/
vite.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import { defineConfig } from "vite";
import path from "path";
import vue from "@vitejs/plugin-vue";
import WindiCSS from "vite-plugin-windicss";
import { compileTemplate, SFCTemplateCompileOptions } from "@vue/compiler-sfc";
import { readFileSync } from "fs";
const customSvgPlugin = () => {
const fileRegex = /\.svg$/;
return {
name: "svg-loader",
enforce: "pre" as const,
transform(src: string, id: string) {
if (fileRegex.test(id)) {
// console.log(src);
const base = readFileSync(id);
const { code } = compileTemplate({
source: base.toString(),
transformAssetUrls: false,
id,
} as SFCTemplateCompileOptions);
return code;
}
return src;
},
};
};
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue(), WindiCSS(), customSvgPlugin()],
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
},
},
});