-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvite.config.ts
74 lines (72 loc) · 2.34 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
66
67
68
69
70
71
72
73
74
import { dirname, resolve } from "node:path";
import { fileURLToPath } from "node:url";
import ViteHonoDevServer from "@hono/vite-dev-server";
import { paraglide as ViteParaglide } from "@inlang/paraglide-vite";
import { inspectorServer as ViteInspectorServer } from "@react-dev-inspector/vite-plugin";
import ViteReact from "@vitejs/plugin-react";
import { FontaineTransform } from "fontaine";
import ViteMillion from "million/compiler";
import { telefunc as ViteTelefunc } from "telefunc/vite";
import ViteAutoImport from "unplugin-auto-import/vite";
import Vike from "vike/plugin";
import { defineConfig } from "vite";
import ViteCompress from "vite-plugin-compression2";
const isProd = process.env.NODE_ENV === "production";
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const root = resolve(__dirname, ".");
export default defineConfig({
plugins: [
ViteParaglide({
project: "./project.inlang",
outdir: "./src/paraglide",
}),
ViteHonoDevServer({
entry: "src/server/index.ts",
exclude: [
/^\/@.+$/,
/.*\.(js|ts|tsx)($|\?)/,
/.*\.(s?css|less)($|\?)/,
/^\/favicon\.ico$/,
/.*\.(svg|png|avif|webp|jpe?g|gif)($|\?)/,
/.*\.webmanifest($|\?)/,
/^\/(public|assets|static)\/.+/,
/^\/node_modules\/.*/,
],
injectClientScript: false,
}),
isProd && ViteMillion.vite({ telemetry: false, auto: true }),
FontaineTransform.vite({
fallbacks: [
"Be Vietnam Pro,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji",
],
}),
ViteAutoImport({
dts: "./typings/auto-imports.d.ts",
imports: ["react"],
}),
Vike(),
ViteReact(),
ViteTelefunc(),
ViteInspectorServer(),
isProd &&
ViteCompress({
algorithm: "brotliCompress",
deleteOriginalAssets: false,
exclude: [/\.(png|avif|webp|jpe?g|gif)$/i, /\.map$/, /\.br$/],
}),
].filter(Boolean),
resolve: {
alias: {
"#root": resolve(root, "src"),
"#server": resolve(root, "src/server"),
$paraglide: resolve(root, "src/paraglide"),
},
},
ssr: {
noExternal: ["react-use"],
},
server: {
port: +(process.env.PORT || 0) || 3000,
},
});