-
Notifications
You must be signed in to change notification settings - Fork 0
/
vite.config.ts
28 lines (25 loc) · 998 Bytes
/
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
import { TanStackRouterVite } from '@tanstack/router-vite-plugin';
import react from '@vitejs/plugin-react-swc';
import { defineConfig, loadEnv } from 'vite';
import svgr, { type VitePluginSvgrOptions } from 'vite-plugin-svgr';
import tsconfigPaths from 'vite-tsconfig-paths';
import { ZodError } from 'zod';
import { env } from './src/env';
export default defineConfig(async ({ mode }) => {
const loadedEnv = loadEnv(mode, __dirname, '');
const { PORT } = await env.parseAsync(loadedEnv).catch((error) => {
if (error instanceof ZodError) console.error(error.flatten().fieldErrors);
throw new Error('❌ Invalid environment variables:');
});
const svgrOptions: VitePluginSvgrOptions = {
svgrOptions: {
plugins: ['@svgr/plugin-svgo', '@svgr/plugin-jsx'],
svgoConfig: { floatPrecision: 2 },
},
};
return {
plugins: [react(), tsconfigPaths(), svgr(svgrOptions), TanStackRouterVite()],
build: { outDir: 'build' },
server: { port: PORT },
};
});