Files
resolutionflow/frontend/vite.config.ts
chihlasm 65eb630254 chore: migrate dev env to Traefik reverse proxy with HTTPS
Replace direct port exposure with Traefik labels for dev.resolutionflow.com
routing. Adds basic auth on frontend, TLS via Let's Encrypt, and updates
Vite allowedHosts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 02:13:47 +00:00

84 lines
2.1 KiB
TypeScript

/// <reference types="vitest/config" />
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import tailwindcss from '@tailwindcss/vite'
import { sentryVitePlugin } from '@sentry/vite-plugin'
import path from 'path'
// https://vite.dev/config/
export default defineConfig({
plugins: [
tailwindcss(),
react(),
sentryVitePlugin({
org: process.env.SENTRY_ORG,
project: process.env.SENTRY_PROJECT,
authToken: process.env.SENTRY_AUTH_TOKEN,
silent: !process.env.SENTRY_AUTH_TOKEN, // Don't error in local dev
}),
],
server: {
host: '0.0.0.0',
allowedHosts: ['dev.resolutionflow.com'],
watch: {
usePolling: true,
},
},
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
},
test: {
globals: true,
environment: 'jsdom',
setupFiles: './src/test/setup.ts',
include: ['src/**/*.{test,spec}.{ts,tsx}'],
coverage: {
provider: 'v8',
reporter: ['text', 'json-summary', 'html'],
include: ['src/**/*.{ts,tsx}'],
exclude: [
'src/test/**',
'src/types/**',
'src/**/*.d.ts',
'src/instrument.ts',
'src/main.tsx',
],
},
},
build: {
sourcemap: 'hidden', // Generate source maps but don't expose them publicly
rollupOptions: {
output: {
manualChunks: {
// React core and routing
'react-vendor': ['react', 'react-dom', 'react-router-dom'],
// Markdown rendering
'markdown-vendor': ['react-markdown'],
// State management
'state-vendor': ['zustand', 'immer', 'zundo'],
// Icons
'icons-vendor': ['lucide-react'],
// Utilities and UI libs
'utils-vendor': [
'axios',
'clsx',
'tailwind-merge',
'class-variance-authority',
'date-fns',
'sonner',
],
// Drag and drop
'dnd-vendor': [
'@dnd-kit/core',
'@dnd-kit/sortable',
'@dnd-kit/utilities',
],
},
},
},
chunkSizeWarningLimit: 500,
},
})