-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.js
78 lines (76 loc) · 2.08 KB
/
vite.config.js
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
import { defineConfig } from 'vite';
import { resolve } from 'path';
import { terser } from 'rollup-plugin-terser';
import fs from 'fs';
import path from 'path';
import copy from 'rollup-plugin-copy';
export default defineConfig(({ mode }) => {
const isProduction = mode === 'production';
return {
build: {
rollupOptions: {
input: {
...Object.fromEntries(
fs
.readdirSync('./src/dist/scripts')
.map((file) => [
`scripts/${path.basename(file, '.js')}`,
resolve(__dirname, `src/dist/scripts/${file}`),
])
),
...Object.fromEntries(
fs
.readdirSync('./src/dist/lib')
.map((file) => [
`lib/${path.basename(file, '.js')}`,
resolve(__dirname, `src/dist/lib/${file}`),
])
),
},
output: {
dir: isProduction ? 'bundled-v0.0.1' : 'bundled-v0.0.2',
entryFileNames: 'dist/[name].js',
assetFileNames: '[name][extname]',
},
plugins: [
copy({
targets: [
{ src: 'src/html', dest: 'bundled-v0.0.1/html' },
{ src: 'src/css', dest: 'bundled-v0.0.1/css' },
{ src: 'src/icons', dest: 'bundled-v0.0.1/icons' },
{ src: 'src/manifest.json', dest:'bundled-v0.0.1' },
],
}),
terser({
mangle: {
reserved: [
'ebexIdentifier',
'ePvercel',
'bv',
'cv',
'dv',
'ePpython',
'bpy',
'cpy',
'dpy',
'showModal',
],
},
keep_fnames: [
'ebexIdentifier',
'ePvercel',
'bv',
'cv',
'dv',
'ePpython',
'bpy',
'cpy',
'dpy',
/showModal/,
],
}),
],
},
},
};
});