| import { defineConfig } from "vite"; | |
| import { cpSync, write } from "fs"; | |
| import { join } from "node:path"; | |
| import { createRequire } from "node:module"; | |
| const require = createRequire(import.meta.url); | |
| const dir = require.resolve("./package.json"); | |
| const template_dir = join(dir, "..", "..", "..", "gradio", "templates"); | |
| export default defineConfig({ | |
| build: { | |
| lib: { | |
| entry: "./src/index.ts", | |
| formats: ["es"] | |
| }, | |
| outDir: "dist", | |
| rollupOptions: { | |
| external: ["fsevents", "vite", "@sveltejs/vite-plugin-svelte"] | |
| } | |
| }, | |
| plugins: [copy_files()] | |
| }); | |
| export function copy_files() { | |
| return { | |
| name: "copy_files", | |
| writeBundle() { | |
| cpSync("./src/examine.py", "dist/examine.py"); | |
| cpSync("./src/register.mjs", join(template_dir, "register.mjs")); | |
| cpSync("./src/hooks.mjs", join(template_dir, "hooks.mjs")); | |
| cpSync( | |
| join(template_dir, "frontend", "assets", "svelte"), | |
| join(template_dir, "node", "build", "client", "_app"), | |
| { recursive: true } | |
| ); | |
| } | |
| }; | |
| } | |