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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
| import { fileURLToPath, URL } from 'node:url'
|
| import { UserConfig, ConfigEnv, defineConfig } from 'vite'
| import vue from '@vitejs/plugin-vue'
| import AutoImport from 'unplugin-auto-import/vite'
| import Components from 'unplugin-vue-components/vite'
| import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
| import Icons from "unplugin-icons/vite";
| import IconsResolver from "unplugin-icons/resolver";
| import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
| import {resolve} from "path";
| import {viteMockServe} from 'vite-plugin-mock';
|
| const pathSrc = resolve(__dirname, "src");
| export default defineConfig(({ mode }: ConfigEnv): UserConfig=>{
| return {
| assetsInclude: ['**/*.glb'],
| plugins: [
| vue(),
| AutoImport({
| // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
| imports: ["vue", "pinia", "vue-router",],
| resolvers: [
| ElementPlusResolver(),
| // 自动导入图标组件
| IconsResolver({
| prefix: 'el-icon-',
| }),
| ],
| // dts: false,
| dts: "src/typings/auto-imports.d.ts",
| }),
| Components({
| resolvers: [
| ElementPlusResolver(),
| // 自动注册图标组件
| IconsResolver({
| // element-plus图标库,其他图标库 https://icon-sets.iconify.design/
| enabledCollections: ["ep"],
| }),
| ],
| // dts: false,
| dts: "src/typings/components.d.ts",
| }),
| Icons({
| // 自动安装图标库
| autoInstall: true,
| }),
| createSvgIconsPlugin({
| // 指定需要缓存的图标文件夹
| iconDirs: [resolve(pathSrc, "assets/icons")],
| // 指定symbolId格式
| symbolId: "icon-[dir]-[name]",
| }),
| viteMockServe({
| mockPath: './mock',
| enable: true
| }),
| ],
| resolve: {
| alias: {
| '@': fileURLToPath(new URL('./src', import.meta.url))
| }
| },
| css: {
| // css预处理器
| preprocessorOptions: {
| less: {
| charset: false,
| additionalData: '@import "./src/styles/global.less";',
| }
| },
| },
| };
| });
|
|