-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.ts
70 lines (67 loc) 路 1.77 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
import * as sass from "sass";
import { TanStackRouterVite } from "@tanstack/router-vite-plugin";
import react from "@vitejs/plugin-react";
import linaria from "@wyw-in-js/vite";
import { injectManifest } from "rollup-plugin-workbox";
import { type UserConfig, defineConfig } from "vite";
import tsconfigPaths from "vite-tsconfig-paths";
import { type InlineConfig } from "vitest";
const isDev = process.env.NODE_ENV !== "production";
interface ViteConfig extends UserConfig {
test: InlineConfig;
}
// https://vitejs.dev/config/
export default defineConfig({
build: {
sourcemap: isDev,
minify: true
},
define: {
"process.env": {}
},
plugins: [
react(),
tsconfigPaths(),
TanStackRouterVite({
routesDirectory: "src/view/routes"
}),
linaria({
sourceMap: isDev,
preprocessor: (selector, cssText) => {
try {
const result = sass.compileString(`${selector} {${cssText}}\n`);
return result.css.toString();
} catch (error) {
console.error("Error processing SCSS:", error);
return "";
}
},
exclude: ["src/global/**", "**/*.test.{ts,tsx}"],
include: ["**/*.{ts,tsx}"]
}),
injectManifest({
swDest: "dist/sw.js",
globDirectory: "dist",
swSrc: "src/service-worker.ts",
maximumFileSizeToCacheInBytes: 10 * 1024 * 1024
})
],
test: {
// https://vitest.dev/api/
globals: false,
environment: "happy-dom",
setupFiles: "./src/tests/setupTests.ts",
css: true, // @Note Parsing CSS is slow
exclude: ["node_modules", "tests-e2e", "dist", ".idea", ".git", ".cache"],
coverage: {
enabled: false,
provider: "v8"
},
benchmark: {
include: ["**/*.{bench,benchmark}.?(c|m)[jt]s?(x)"],
exclude: ["node_modules", "tests-e2e", "dist", ".idea", ".git", ".cache"]
},
// Debug
logHeapUsage: true
}
} as ViteConfig);