Files
job-search/web/vite.config.ts
T
2026-10-16 16:29:08 +01:00

35 lines
1.2 KiB
TypeScript

/// <reference types="vitest/config" />
import tailwindcss from '@tailwindcss/vite';
import { fileURLToPath } from 'node:url';
import { defineConfig, loadEnv } from 'vite';
import solid from 'vite-plugin-solid';
// The dev server proxies /api and the WebSocket at /ws to the backend:
// job-search serve at its default address, or API_PROXY_TARGET if it's set.
// /ws keeps the browser's Host header (changeOrigin: false), as the backend
// only accepts a WebSocket whose Origin matches the host it was asked for.
export default defineConfig(({ mode }) => {
const env = loadEnv(mode, process.cwd(), '');
const target = env.API_PROXY_TARGET || 'http://localhost:9393';
return {
plugins: [solid(), tailwindcss()],
// @/ is src/, matching "paths" in tsconfig.app.json.
resolve: {
alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) },
},
server: {
proxy: {
'/api': { target, changeOrigin: true },
'/ws': { target, ws: true, changeOrigin: false },
},
},
// Vitest. vite-plugin-solid would run tests in jsdom, which isn't
// installed: nothing tested yet renders, and Solid's reactivity works
// in Node as it is.
test: {
environment: 'node',
},
};
});