| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /// <reference types="vitest" />
- /// <reference types="vite-plugin-svgr/client" />
- import { defineConfig, loadEnv } from "vite";
- import viteTsconfigPaths from "vite-tsconfig-paths";
- import svgr from "vite-plugin-svgr";
- import { reactRouter } from "@react-router/dev/vite";
- import { configDefaults } from "vitest/config";
- export default defineConfig(({ mode }) => {
- const {
- VITE_BACKEND_HOST = "127.0.0.1:3000",
- VITE_USE_TLS = "false",
- VITE_FRONTEND_PORT = "3001",
- VITE_INSECURE_SKIP_VERIFY = "false",
- } = loadEnv(mode, process.cwd());
- const USE_TLS = VITE_USE_TLS === "true";
- const INSECURE_SKIP_VERIFY = VITE_INSECURE_SKIP_VERIFY === "true";
- const PROTOCOL = USE_TLS ? "https" : "http";
- const WS_PROTOCOL = USE_TLS ? "wss" : "ws";
- const API_URL = `${PROTOCOL}://${VITE_BACKEND_HOST}/`;
- const WS_URL = `${WS_PROTOCOL}://${VITE_BACKEND_HOST}/`;
- const FE_PORT = Number.parseInt(VITE_FRONTEND_PORT, 10);
- return {
- plugins: [
- !process.env.VITEST && reactRouter(),
- viteTsconfigPaths(),
- svgr(),
- ],
- server: {
- port: FE_PORT,
- proxy: {
- "/api": {
- target: API_URL,
- changeOrigin: true,
- secure: !INSECURE_SKIP_VERIFY,
- },
- "/ws": {
- target: WS_URL,
- ws: true,
- changeOrigin: true,
- secure: !INSECURE_SKIP_VERIFY,
- },
- "/socket.io": {
- target: WS_URL,
- ws: true,
- changeOrigin: true,
- secure: !INSECURE_SKIP_VERIFY,
- // rewriteWsOrigin: true,
- },
- },
- },
- ssr: {
- noExternal: ["react-syntax-highlighter"],
- },
- clearScreen: false,
- test: {
- environment: "jsdom",
- setupFiles: ["vitest.setup.ts"],
- reporters: "basic",
- exclude: [...configDefaults.exclude, "tests"],
- coverage: {
- reporter: ["text", "json", "html", "lcov", "text-summary"],
- reportsDirectory: "coverage",
- include: ["src/**/*.{ts,tsx}"],
- },
- },
- };
- });
|