-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvite.config.ts
65 lines (63 loc) · 1.78 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
60
61
62
63
64
65
import {
app,
chunkCleanup,
d2Graph,
viteChunkSplit,
viteVue,
} from "./nodedevpkg/vue-vite-presets/src";
import { injectWebAppConfig } from "@innoai-tech/config/vite-plugin-inject-config";
import { defineConfig } from "vite";
import * as process from "node:process";
import { writeFile } from "fs/promises";
const appName = process.env?.["APP"] ?? "vuekit";
export default defineConfig({
build: {
assetsDir: appName == "vuekit" ? "static" : "assets",
},
plugins: [
appName == "openapi-playground"
? [
app(appName, {
enableBaseHref: true,
buildWithPlaceHolder: true,
}),
injectWebAppConfig((_, ac) => {
ac.config["OPENAPI"] = process.env["APP_CONFIG__OPENAPI"] ?? "";
}),
]
: [
app(appName, {
enableBaseHref: true,
}),
],
viteVue({
...(appName == "vuekit"
? {
pagesDirs: [
{ baseRoute: "", dir: "page" },
{ baseRoute: "vuekit", dir: "../../nodepkg/vuekit/example" },
{ baseRoute: "vueuikit", dir: "../../nodepkg/vueuikit/example" },
{
baseRoute: "vuematerial",
dir: "../../nodepkg/vuematerial/example",
},
{ baseRoute: "vuemarkdown", dir: "../../nodepkg/vuemarkdown/example" },
{
baseRoute: "jsoneditor",
dir: "../../nodepkg/jsoneditor/example",
},
],
}
: {}),
}),
viteChunkSplit({
lib: [/nodepkg\/([^/]+)\/src/, /webapp\/([^/]+)\/mod/],
handleModuleFederations: (rels) => {
void writeFile("node_modules/x.d2", d2Graph(rels));
},
}),
chunkCleanup({
minify: true,
}),
],
});