-
Notifications
You must be signed in to change notification settings - Fork 20
/
vite.config.js
105 lines (104 loc) · 2.82 KB
/
vite.config.js
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
/* eslint-disable */
import path from "path"
import { defineConfig } from "vite"
import istanbul from "vite-plugin-istanbul"
import { visualizer } from "rollup-plugin-visualizer"
export default defineConfig(({ command, mode, ssrBuild }) => {
const managerSource = [
"manager.js",
"courseparser.js",
"resultparseriofv2.js",
"resultparseriofv3.js",
"resultparsercsv.js",
"resultparser.js",
"managerui.js"
]
return {
base: "/rg2/",
experimental: {
renderBuiltUrl(filename, { hostType }) {
if (hostType === "js") {
return { runtime: `window.assetUrl(${JSON.stringify(filename)})` }
}
return { relative: true }
}
},
build: {
outDir: "./dist",
emptyOutDir: true,
minify: "esbuild",
manifest: true,
sourcemap: true,
rollupOptions: {
input: path.resolve(__dirname, "src/js/main.js"),
output: {
manualChunks: (id) => {
if (managerSource.some((module) => id.includes(module))) {
return "manager"
}
if (
id.includes("leaflet") ||
id.includes("proj4") ||
id.includes("wkt-parser") ||
id.includes("mgrs") ||
id.includes("vanillajs-datepicker")
) {
return "manager-utils"
}
if (id.includes("ag-grid-community")) {
return "grid"
}
if (id.includes("node_modules")) {
return "node-modules"
}
return "main"
}
}
}
},
// suppress Bootstrap warnings until it is updated
css: {
preprocessorOptions: {
scss: {
silenceDeprecations: ["mixed-decls", "color-functions", "legacy-js-api"]
}
}
},
resolve: {
alias: {
"~ag-grid-community": path.resolve(__dirname, "node_modules/ag-grid-community"),
"~bootstrap": path.resolve(__dirname, "node_modules/bootstrap"),
"~bootstrap-icons": path.resolve(__dirname, "node_modules/bootstrap-icons"),
"~datepicker": path.resolve(__dirname, "node_modules/vanillajs-datepicker")
}
},
server: {
origin: "https://localhost",
port: 5173,
// needed for vite and Cypress to work together
// see https://stackoverflow.com/questions/72324704/cypress-cant-load-assets-from-vites-devserver
host: "127.0.0.1",
strictPort: true,
hot: true,
hmr: {
port: 5174,
host: "127.0.0.1"
}
},
preview: {
port: 5173,
strictPort: true
},
open: true,
plugins: [
visualizer(),
istanbul({
cypress: true,
include: "src/*",
exclude: ["node_modules", "test/"],
extension: [".js"],
requireEnv: true
})
]
}
})