-
Notifications
You must be signed in to change notification settings - Fork 1
/
vite.config.ts
107 lines (103 loc) · 2.72 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import { resolve } from 'node:path'
import { execSync } from 'node:child_process'
import { defineConfig } from 'vite'
import Vue from '@vitejs/plugin-vue'
const external = [
'@antfu/eslint-config',
'@antv/layout',
'@dcloudio/uni-app',
/@logicflow/,
'@iconify/vue',
'@smallwei/avue',
/@umijs\/openapi/,
/@vitejs/,
/@vue/,
/@yusui/,
'acorn',
'astring',
'axios',
/dayjs/,
'echarts',
/element-plus/,
'file-saver',
'json5',
/lodash/,
'magic-string',
'mitt',
/monaco-editor/,
/node:/,
/pinia/,
'rollup-plugin-visualizer',
/unocss/,
/unplugin/,
/virtual:/,
/vite-plugin/,
'vue',
'vuedraggable',
'vue-echarts',
'vue-request',
/vue-router/,
/\.css$/,
]
// 打包
const entry = {
'components': resolve(__dirname, 'packages/components/index.ts'),
'composables': resolve(__dirname, 'packages/composables/index.ts'),
'form-design': resolve(__dirname, 'packages/form-design/index.ts'),
'flow-design': resolve(__dirname, 'packages/flow-design/index.ts'),
'plugins': resolve(__dirname, 'packages/plugins/index.ts'),
'request': resolve(__dirname, 'packages/request/index.ts'),
'request/openapi': resolve(__dirname, 'packages/request/openapi/index.ts'),
'theme': resolve(__dirname, 'packages/theme/index.ts'),
'types': resolve(__dirname, 'packages/types/index.ts'),
'utils': resolve(__dirname, 'packages/utils/index.ts'),
}
// 不打包
const unpkg = {
'flow-pages': resolve(__dirname, 'packages/flow-pages/index.ts'),
'uvue': resolve(__dirname, 'packages/uvue/index.ts'),
}
export const alias = Object.entries({ ...entry, ...unpkg })
.map(([name, path]) => ({ find: `@yusui/${name}`, replacement: path }))
export default defineConfig(({ mode }) => {
if (mode === 'production')
execSync('pnpm remove:dist')
return {
plugins: [Vue()],
resolve: { alias },
build: {
lib: { entry },
rollupOptions: {
external,
output: [
// {
// inlineDynamicImports: true,
// entryFileNames: "index.umd.js",
// file: entry.utils,
// format: "umd",
// dir: "dist"
// },
{
preserveModules: true,
preserveModulesRoot: 'dist',
entryFileNames(chunkInfo) {
return chunkInfo.isEntry ? '[name]/index.mjs' : '[name].mjs'
},
format: 'es',
dir: 'dist',
},
{
preserveModules: true,
preserveModulesRoot: 'dist',
entryFileNames(chunkInfo) {
return chunkInfo.isEntry ? '[name]/index.cjs' : '[name].cjs'
},
exports: 'named',
format: 'cjs',
dir: 'dist',
},
],
},
},
}
})