-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvite.config.ts
48 lines (46 loc) · 1.53 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
import terser from '@rollup/plugin-terser'
import { RenderedChunk } from 'rollup'
import { MinifyOptions } from 'terser'
import { defineConfig } from 'vite'
import solidPlugin from 'vite-plugin-solid'
import { viteStaticCopy } from 'vite-plugin-static-copy'
const chunkMap = [
{ pattern: 'nois/dist/', dest: 'nois', mangle: false },
{ pattern: '@codemirror', dest: 'codemirror', mangle: true }
]
export default defineConfig({
plugins: [
solidPlugin(),
viteStaticCopy({
targets: [{ src: 'node_modules/nois/std', dest: '.' }]
})
],
server: {
port: 3000
},
build: {
target: 'esnext',
rollupOptions: {
plugins: [
{
name: 'terser',
renderChunk: (code: string, chunk: RenderedChunk, outputOptions: any) => {
const terserOptions: MinifyOptions = { format: { comments: false } }
const opts = chunkMap.find(c => c.dest === chunk.name)
if (opts && !opts.mangle) {
terserOptions.keep_fnames = true
}
return (<any>terser(terserOptions)).renderChunk(code, chunk, outputOptions)
}
}
],
output: {
manualChunks: id => {
return chunkMap.find(({ pattern }) => id.includes(pattern))?.dest
}
}
},
minify: false,
sourcemap: true
}
})