diff --git a/.gitignore b/.gitignore index cdedc95a..25650406 100644 --- a/.gitignore +++ b/.gitignore @@ -66,12 +66,10 @@ lightrag-dev/ gui/ # Frontend build output (built during PyPI release) -lightrag/api/webui/* -!lightrag/api/webui/.gitkeep +lightrag/api/webui/ # unit-test files test_* # Cline files -memory-bank memory-bank/ diff --git a/lightrag/api/webui/.gitkeep b/lightrag/api/webui/.gitkeep deleted file mode 100644 index b4744647..00000000 --- a/lightrag/api/webui/.gitkeep +++ /dev/null @@ -1,7 +0,0 @@ -# This directory will contain the built frontend WebUI -# -# The frontend is built during: -# - GitHub Actions release workflow (automatic) -# - Local development with: cd lightrag_webui && bun run build -# -# Build output is excluded from git but included in PyPI packages diff --git a/lightrag_webui/vite.config.ts b/lightrag_webui/vite.config.ts index 2957b743..8e616961 100644 --- a/lightrag_webui/vite.config.ts +++ b/lightrag_webui/vite.config.ts @@ -1,12 +1,30 @@ import { defineConfig } from 'vite' import path from 'path' +import { existsSync, mkdirSync } from 'fs' import { webuiPrefix } from '@/lib/constants' import react from '@vitejs/plugin-react-swc' import tailwindcss from '@tailwindcss/vite' +const ensureWebuiDir = () => ({ + name: 'ensure-webui-dir', + apply: 'build' as const, + buildStart() { + const outDir = path.resolve(__dirname, '../lightrag/api/webui') + if (!existsSync(outDir)) { + mkdirSync(outDir, { recursive: true }) + } + }, + closeBundle() { + const outDir = path.resolve(__dirname, '../lightrag/api/webui') + if (!existsSync(outDir)) { + mkdirSync(outDir, { recursive: true }) + } + } +}) + // https://vite.dev/config/ export default defineConfig({ - plugins: [react(), tailwindcss()], + plugins: [react(), tailwindcss(), ensureWebuiDir()], resolve: { alias: { '@': path.resolve(__dirname, './src')