-
Notifications
You must be signed in to change notification settings - Fork 6
/
vite.config.ts
91 lines (79 loc) · 2.47 KB
/
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
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import {defineConfig, PluginOption, UserConfigExport} from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import {ElementPlusResolver} from "unplugin-vue-components/resolvers";
const src = path.resolve(__dirname, 'src')
const autoImport: PluginOption[] = [
AutoImport({
// Auto import functions from Vue, e.g. ref, reactive, toRef...
// 自动导入 Vue 相关函数,如:ref, reactive, toRef 等
imports: ['vue'],
// Auto import functions from Element Plus, e.g. ElMessage, ElMessageBox... (with style)
// 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式)
resolvers: [
ElementPlusResolver(),
],
dts: path.resolve(src, 'auto-imports.d.ts'),
}),
Components({
resolvers: [
// Auto register Element Plus components
// 自动导入 Element Plus 组件
ElementPlusResolver(),
// Auto register icon components
// 自动注册图标组件
IconsResolver({
prefix: 'i',
enabledCollections: ['ep', 'fa6-solid', 'ic'],
alias: {
fas: 'fa6-solid',
}
}),
],
dts: path.resolve(src, 'components.d.ts'),
}),
Icons({
autoInstall: true
})
]
const umd = !!process.env.UMD
const demo = !!process.env.BUILD_DEMO
// https://vitejs.dev/config/
const cfg: UserConfigExport = {
define: {
'process.env': {}
},
plugins: [vue(), ...autoImport],
resolve: {
alias: {'@': src},
},
build: demo ? {} : {
lib: {
entry: path.resolve(src, 'index.ts'),
name: 'TgBlog',
formats: umd ? ['umd'] : ['es', 'cjs'],
fileName: (format) => `tg-blog.${format}.js`,
},
rollupOptions: {
// external modules won't be bundled into your library
external: ['vue'], // not every external has a global
output: {
// disable warning on src/index.ts using both default and named export
exports: 'named',
// Provide global variables to use in the UMD build
// for externalized deps (not useful if 'umd' is not in lib.formats)
globals: {
vue: 'Vue',
},
inlineDynamicImports: umd,
},
},
sourcemap: true,
emptyOutDir: false, // to retain the types folder generated by tsc
},
}
export default defineConfig(cfg)