-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvite.widget.config.ts
More file actions
91 lines (81 loc) · 2.26 KB
/
vite.widget.config.ts
File metadata and controls
91 lines (81 loc) · 2.26 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import { resolve } from "path";
import { visualizer } from "rollup-plugin-visualizer";
export default defineConfig({
base: "./",
plugins: [
react(),
visualizer({
filename: "dist/stats.html",
gzipSize: true,
brotliSize: true,
open: false,
}),
],
resolve: {
alias: {
"@": resolve(__dirname, "./src"),
},
},
build: {
lib: {
entry: resolve(__dirname, "src/widget.tsx"),
name: "ChatWidgetDemo",
formats: ["es", "umd"],
fileName: (format) => `chat-widget.${format}.js`,
},
sourcemap: true,
minify: "esbuild",
cssCodeSplit: true,
target: "es2018",
rollupOptions: {
external: [],
output: [
// ES build: code-splitting + chunks
{
format: "es",
entryFileNames: "chat-widget.es.js",
chunkFileNames: "chunks/[name]-[hash].js",
assetFileNames: "assets/[name]-[hash][extname]",
manualChunks(id) {
if (!id.includes("node_modules")) return;
if (id.includes("/react/") || id.includes("/react-dom/"))
return "react";
if (id.includes("/antd/") || id.includes("@ant-design"))
return "antd";
if (id.includes("/@mui/")) return "mui";
if (id.includes("/@emotion/")) return "emotion";
if (
id.includes("/react-markdown/") ||
id.includes("/remark-") ||
id.includes("/rehype-")
)
return "markdown";
if (
id.includes("/react-live/") ||
id.includes("/prism") ||
id.includes("/buble")
)
return "live-editor";
if (id.includes("/idb/")) return "idb";
return "vendor";
},
},
{
format: "umd",
name: "ChatWidgetDemo",
entryFileNames: "chat-widget.umd.js",
assetFileNames: "assets/[name]-[hash][extname]",
inlineDynamicImports: true,
globals: {},
},
],
},
},
define: {
"process.env.NODE_ENV": JSON.stringify("production"),
"process.env": "{}",
global: "globalThis",
},
});