Files
kener/vite.config.ts
T

61 lines
1.6 KiB
TypeScript

import tailwindcss from "@tailwindcss/vite";
import { sveltekit } from "@sveltejs/kit/vite";
import version from "vite-plugin-package-version";
import { defineConfig } from "vite";
import devtoolsJson from "vite-plugin-devtools-json";
import * as dotenv from "dotenv";
dotenv.config();
function getAllowedHost(origin: string): string | undefined {
try {
return new URL(origin).hostname;
} catch {
return undefined;
}
}
export default defineConfig(({ mode }) => {
const port = Number(process.env.PORT) || 3000;
const buildEnv = process.env.VITE_BUILD_ENV || mode || "development";
const isProduction = buildEnv === "production";
const origin = process.env.ORIGIN || `http://localhost:${port}`;
const allowedHost = getAllowedHost(origin);
return {
optimizeDeps: {
include: ["rrule"],
exclude: [
"svelte-codemirror-editor",
"codemirror",
"@codemirror/lang-javascript",
"@codemirror/lang-json",
"@codemirror/lang-markdown",
"@codemirror/lang-css",
"@codemirror/lang-html",
"@uiw/codemirror-theme-github",
],
},
plugins: [tailwindcss(), sveltekit(), version(), devtoolsJson()],
server: {
allowedHosts: allowedHost ? [allowedHost] : undefined,
port,
watch: {
ignored: ["**/src/lib/server/data/**"],
},
},
assetsInclude: ["**/*.yaml"],
ssr: {
noExternal: ["svelte-sonner", "svelte-codemirror-editor", "rrule"],
},
// Keeping this around for quick grepping/debugging.
define: {
__KENER_BUILD_ENV__: JSON.stringify(buildEnv),
__KENER_IS_PROD__: JSON.stringify(isProduction),
},
};
});