You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.2 KiB
TypeScript

import { sveltekit } from '@sveltejs/kit/vite';
import { defineConfig } from 'vite';
import { fileURLToPath } from 'node:url';
import { dirname, resolve as resolvePath } from 'node:path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const repoRoot = resolvePath(__dirname, '..', '..');
export default defineConfig(({ mode }) => {
const isDev = mode === 'development';
return {
plugins: [sveltekit()],
resolve: {
// En desarrollo, alias para usar better-sqlite3 (Vite/HMR no entiende 'bun:sqlite')
alias: isDev ? [{ find: 'bun:sqlite', replacement: 'better-sqlite3' }] : []
},
ssr: {
// En dev, externalizar better-sqlite3 (CJS nativo) para que se cargue vía require;
// en producción, externalizar 'bun:sqlite' y que lo resuelva Bun en runtime.
external: isDev ? ['better-sqlite3'] : ['bun:sqlite']
},
optimizeDeps: {
// Evitar prebundling de drivers nativos
exclude: ['bun:sqlite', 'better-sqlite3']
},
// Permitir host remoto en desarrollo y permitir importar fuera del root (reexport desde core)
server: isDev ? { allowedHosts: ['server.brobert.net'], fs: { allow: [repoRoot] } } : undefined
};
});