1
0
peddlers-of-ketran/client/vite.config.js

48 lines
1.6 KiB
JavaScript

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import fs from 'fs';
const httpsEnv = (process.env.HTTPS || '').toLowerCase();
const useHttps = httpsEnv === 'true' || httpsEnv === '1';
import tsconfigPaths from 'vite-tsconfig-paths'
// If custom cert paths are provided via env, use them; otherwise let Vite handle a self-signed cert when true.
const httpsOption = useHttps
? (process.env.VITE_HTTPS_KEY && process.env.VITE_HTTPS_CERT
? {
key: fs.readFileSync(process.env.VITE_HTTPS_KEY),
cert: fs.readFileSync(process.env.VITE_HTTPS_CERT)
}
: true)
: false;
export default defineConfig({
// Base public path when served in dev or production. Allow overriding
// via VITE_API_BASE (e.g. /ketr.ketran) so assets and manifest paths work.
base: '/',
plugins: [react(), tsconfigPaths()],
build: {
outDir: 'build',
},
server: {
host: process.env.HOST || '0.0.0.0',
port: Number(process.env.PORT) || 3000,
https: httpsOption,
proxy: {
'/ketr.ketran/api': {
target: 'http://peddlers-server:8930',
changeOrigin: true,
rewrite: (path) => path.replace(/^\/ketr.ketran/, '')
}
},
// HMR options: allow overriding host/port/protocol from env so external
// browsers (accessing via a different hostname) can connect to the dev
// server's websocket. See https://vite.dev/config/server-options.html#server-hmr
hmr: {
port: process.env.VITE_HMR_PORT || 3001,
host: process.env.VITE_HMR_HOST || 'localhost',
protocol: process.env.VITE_HMR_PROTOCOL || 'ws'
}
}
});