-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathvite.config.mjs
More file actions
71 lines (68 loc) · 1.76 KB
/
vite.config.mjs
File metadata and controls
71 lines (68 loc) · 1.76 KB
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
import { defineConfig } from 'vite'
import { resolve } from 'node:path'
function htmlAliasPlugin() {
return {
name: 'html-alias',
transformIndexHtml(html) {
// replace automatically redirected CDN link
const stage1 = html.replace(
/https:\/\/cdn\.jsdelivr\.net\/npm\/@mundorum\/oid(?!\/)/g,
'/node_modules/@mundorum/oid/oid.min.js'
)
// replace remaining CDN paths with local paths
return stage1.replace(/https:\/\/cdn.jsdelivr.net\/npm\//g, '/node_modules/')
}
}
}
// Create different configs based on command (build vs serve)
export default defineConfig(({ command, mode }) => {
// If running dev server (serve command), use the server configuration
if (command === 'serve') {
return {
plugins: [htmlAliasPlugin()]
}
}
if (mode === 'development') {
return {
build: {
lib: {
entry: resolve(__dirname, 'src/assembly.js'),
name: 'oidlib',
fileName: () => 'oid.js', // function avoids .es
formats: ['es'] // ES module format
},
minify: false,
sourcemap: true,
outDir: 'dist',
emptyOutDir: false, // avoid cleaning the output directory
rollupOptions: {
external: [],
output: {
globals: {}
}
}
}
}
}
// Production config (UMD build)
return {
build: {
lib: {
entry: resolve(__dirname, 'src/assembly.js'),
name: 'oidlib',
fileName: () => 'oid.min.js', // function avoids .umd
formats: ['umd']
},
minify: true,
outDir: 'dist',
emptyOutDir: false,
cssMinify: true,
rollupOptions: {
external: [],
output: {
globals: {}
}
}
}
}
})