import { defineConfig, loadEnv } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig(({ mode }) => { const env = loadEnv(mode, process.cwd(), ''); // Where the browser reaches the dev server when it is not http://localhost, e.g. OrbStack's // https://vite.sealshare.orb.local. Laravel loads the assets from it, and HMR connects to it. const devServerUrl = env.VITE_DEV_SERVER_URL ? new URL(env.VITE_DEV_SERVER_URL) : null; const secure = devServerUrl?.protocol === 'https:'; return { plugins: [ laravel({ input: ['resources/css/app.css', 'resources/js/app.js'], refresh: true, }), ], server: { // IPv4 and IPv6: OrbStack's HTTPS proxy connects over either host: true, port: Number(env.VITE_PORT) || 5173, cors: true, origin: devServerUrl?.origin, allowedHosts: devServerUrl ? [devServerUrl.hostname] : [], hmr: devServerUrl ? { protocol: secure ? 'wss' : 'ws', host: devServerUrl.hostname, clientPort: Number(devServerUrl.port) || (secure ? 443 : 80), } : { host: 'localhost', }, watch: { ignored: ['**/storage/framework/views/**'], }, }, }; });