Queue-North-Website/vite.config.js

38 lines
1.1 KiB
JavaScript

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'
// Split rarely-changing vendor code out of the app chunk so repeat visits and
// post-deploy cache hits don't re-download React, the router, and the icon set.
const manualChunks = (id) => {
if (!id.includes('node_modules')) return undefined
if (id.includes('lucide-react')) return 'icons'
if (id.includes('react-router')) return 'router'
if (/node_modules\/(react|react-dom|scheduler)\//.test(id)) return 'react-vendor'
return undefined
}
export default defineConfig(({ isSsrBuild }) => ({
plugins: [react()],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
},
server: {
port: 5173,
proxy: {
'/api': {
target: 'http://localhost:3001',
changeOrigin: true,
},
},
},
build: {
outDir: 'dist',
sourcemap: process.env.NODE_ENV !== 'production',
// The SSR bundle externalises its dependencies, so chunking does not apply.
rollupOptions: isSsrBuild ? {} : { output: { manualChunks } },
},
}))