-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvite.config.base.js
More file actions
67 lines (64 loc) · 2.03 KB
/
vite.config.base.js
File metadata and controls
67 lines (64 loc) · 2.03 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
/*
* SPDX-FileCopyrightText: 2025 Tendry Lab
* SPDX-License-Identifier: Apache-2.0
*/
import { defineConfig } from "vite";
import preact from "@preact/preset-vite";
import compression from "vite-plugin-compression";
import checker from "vite-plugin-checker";
import { plugin as markdown } from "vite-plugin-markdown";
function createProxyConfig(target) {
return {
target,
changeOrigin: true,
configure: (proxy, options) => {
proxy.on("proxyReq", (proxyReq) => {
proxyReq.removeHeader("authorization");
proxyReq.removeHeader("cookie");
proxyReq.removeHeader("x-forwarded-for");
proxyReq.removeHeader("x-forwarded-proto");
proxyReq.removeHeader("x-forwarded-host");
proxyReq.setHeader("user-agent", "Vite-Dev-Proxy");
proxyReq.setHeader("accept", "application/json");
});
},
};
}
export function createBaseConfig(deviceIP = "", projectConfig = {}) {
return defineConfig({
plugins: [
preact(),
markdown({ mode: "html" }),
checker({ typescript: true }),
compression({
algorithm: "gzip",
ext: ".gz",
threshold: 128,
deleteOriginFile: true,
}),
],
server: {
proxy: {
"/api/v1/telemetry": createProxyConfig(deviceIP),
"/api/v1/registration": createProxyConfig(deviceIP),
"/api/v1/config/sensor/analog": createProxyConfig(deviceIP),
"/api/v1/system/reboot": createProxyConfig(deviceIP),
"/api/v1/system/locate": createProxyConfig(deviceIP),
"/api/v1/system/time": createProxyConfig(deviceIP),
"/api/v1/config/wifi/sta": createProxyConfig(deviceIP),
"/api/v1/config/wifi/ap": createProxyConfig(deviceIP),
"/api/v1/config/mdns": createProxyConfig(deviceIP),
"/api/v1/system/update": createProxyConfig(deviceIP),
},
},
build: {
rollupOptions: {
output: {
entryFileNames: "assets/index.js",
assetFileNames: "assets/[name].[ext]",
},
},
},
...projectConfig,
});
}