-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.ts
59 lines (55 loc) · 1.25 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
import { BuildOptions, defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import { comlink } from 'vite-plugin-comlink'
import { resolve } from 'path'
import postcss_import from 'postcss-import'
import postcss_nesting from 'postcss-nesting'
// @ts-ignore
import autoprefixer from 'autoprefixer'
const libraryOptions: BuildOptions = {
lib: {
entry: resolve(__dirname, 'lib/diorama.js'),
name: 'Diorama',
fileName: 'diorama'
},
outDir: 'lib',
assetsDir: 'none',
minify: true,
rollupOptions: {
input: 'src/layout/worker.ts',
output: {
sourcemap: false,
compact: true
}
}
}
const buildOptions: BuildOptions = {
outDir: 'docs',
assetsDir: 'none',
minify: true,
rollupOptions: {
treeshake: true,
output: {
sourcemap: false,
compact: true
}
}
}
export default defineConfig(({ mode }) => ({
publicDir: mode === 'library' ? false : 'public',
build: mode === 'library' ? libraryOptions : buildOptions,
css: {
devSourcemap: true,
postcss: {
plugins: [postcss_import(), postcss_nesting(), autoprefixer()]
}
},
plugins: [react(), comlink()],
test: {
globals: true,
environment: 'happy-dom'
},
worker: {
plugins: () => [comlink()]
}
}))