mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-15 02:42:45 +08:00
Remove the entire old template-based frontend (~106K lines) and make the React SPA the only way to access the ccw dashboard via `ccw view`. Key changes: - Delete all old frontend files: dashboard-css/ (37 CSS), dashboard-js/ (59 JS), assets/, dashboard.html, and legacy HTML templates - Delete dashboard-generator.ts and dashboard-generator-patch.ts - Simplify server.ts: remove ~234 lines of old frontend code (template constants, MODULE_CSS_FILES/MODULE_FILES arrays, generateServerDashboard(), /assets/* serving) - Rebase React frontend from /react/ to root / (vite.config.ts, react-frontend.ts) - Add /react/* -> /* 301 redirect for backward compatibility - Remove --frontend and --new CLI flags from view and serve commands - Remove generateDashboard export from public API (index.ts) - Simplify serve.ts and view.ts to always use React without conditional branching - Update all affected tests (unit, e2e) for React-only architecture BREAKING CHANGE: --frontend and --new CLI flags removed; generateDashboard export removed from ccw package; /react/ base path changed to /
73 lines
2.0 KiB
TypeScript
73 lines
2.0 KiB
TypeScript
import { defineConfig } from 'vite'
|
|
import react from '@vitejs/plugin-react'
|
|
import path from 'path'
|
|
import { fileURLToPath } from 'url'
|
|
|
|
// ES module equivalent of __dirname
|
|
const __filename = fileURLToPath(import.meta.url)
|
|
const __dirname = path.dirname(__filename)
|
|
|
|
// Get base path from environment variable
|
|
// Default to / for development (CCW server proxies /* to Vite)
|
|
// Can be overridden by VITE_BASE_URL environment variable
|
|
const basePath = process.env.VITE_BASE_URL || '/'
|
|
|
|
// Backend target for Vite proxy (used when directly opening the Vite dev server port).
|
|
// In `ccw view`, this is set to the dashboard server port so /api and /ws route correctly.
|
|
const backendHost = process.env.VITE_BACKEND_HOST || 'localhost'
|
|
const backendPort = Number(process.env.VITE_BACKEND_PORT || '3456')
|
|
const backendHttpTarget = `http://${backendHost}:${backendPort}`
|
|
const backendWsTarget = `ws://${backendHost}:${backendPort}`
|
|
|
|
// https://vite.dev/config/
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
base: basePath,
|
|
resolve: {
|
|
alias: {
|
|
'@': path.resolve(__dirname, './src'),
|
|
},
|
|
extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'],
|
|
},
|
|
server: {
|
|
// Don't hardcode port - allow command line override
|
|
// strictPort: true ensures the specified port is used or fails
|
|
strictPort: true,
|
|
proxy: {
|
|
// Backend API proxy
|
|
'/api': {
|
|
target: backendHttpTarget,
|
|
changeOrigin: true,
|
|
},
|
|
// WebSocket proxy for real-time updates
|
|
'/ws': {
|
|
target: backendWsTarget,
|
|
ws: true,
|
|
},
|
|
},
|
|
},
|
|
build: {
|
|
outDir: 'dist',
|
|
sourcemap: true,
|
|
},
|
|
test: {
|
|
globals: true,
|
|
environment: 'jsdom',
|
|
setupFiles: './src/test/setup.ts',
|
|
coverage: {
|
|
provider: 'v8',
|
|
reporter: ['text', 'json', 'html'],
|
|
exclude: [
|
|
'node_modules/',
|
|
'src/test/',
|
|
'**/*.d.ts',
|
|
'**/*.config.*',
|
|
'**/mockData/*',
|
|
'src/main.tsx',
|
|
],
|
|
},
|
|
include: ['src/**/*.{test,spec}.{ts,tsx}'],
|
|
css: true,
|
|
},
|
|
})
|