mirror of
https://github.com/musistudio/claude-code-router.git
synced 2025-10-04 05:42:08 +08:00
- Created separate build script to handle both CLI and UI building - Added automatic UI dependency installation - Copy built UI artifacts to dist directory 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
35 lines
No EOL
1.2 KiB
JavaScript
35 lines
No EOL
1.2 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
const { execSync } = require('child_process');
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
|
|
console.log('Building Claude Code Router...');
|
|
|
|
try {
|
|
// Build the main CLI application
|
|
console.log('Building CLI application...');
|
|
execSync('esbuild src/cli.ts --bundle --platform=node --outfile=dist/cli.js', { stdio: 'inherit' });
|
|
|
|
// Copy the tiktoken WASM file
|
|
console.log('Copying tiktoken WASM file...');
|
|
execSync('shx cp node_modules/tiktoken/tiktoken_bg.wasm dist/tiktoken_bg.wasm', { stdio: 'inherit' });
|
|
|
|
// Build the UI
|
|
console.log('Building UI...');
|
|
// Check if node_modules exists in ui directory, if not install dependencies
|
|
if (!fs.existsSync('ui/node_modules')) {
|
|
console.log('Installing UI dependencies...');
|
|
execSync('cd ui && npm install', { stdio: 'inherit' });
|
|
}
|
|
execSync('cd ui && npm run build', { stdio: 'inherit' });
|
|
|
|
// Copy the built UI index.html to dist
|
|
console.log('Copying UI build artifacts...');
|
|
execSync('shx cp ui/dist/index.html dist/index.html', { stdio: 'inherit' });
|
|
|
|
console.log('Build completed successfully!');
|
|
} catch (error) {
|
|
console.error('Build failed:', error.message);
|
|
process.exit(1);
|
|
} |