UNPKG

kupos-ui-components-lib

Version:

A reusable UI components package

59 lines (46 loc) • 1.56 kB
#!/usr/bin/env node const { exec } = require('child_process'); const fs = require('fs'); const path = require('path'); console.log('šŸ” Watching for changes in kupos-ui-components...'); console.log('šŸ“ Watching: src/ directory'); console.log('šŸ”„ Auto-rebuild: ON'); console.log(''); let isBuilding = false; function buildPackage() { if (isBuilding) { console.log('ā³ Build already in progress, skipping...'); return; } isBuilding = true; console.log('šŸ”Ø Building package...'); exec('yarn build', (error, stdout, stderr) => { isBuilding = false; if (error) { console.error('āŒ Build failed:', error); return; } console.log('āœ… Package built successfully!'); console.log('šŸ’” Restart your Next.js dev server to see changes'); console.log(''); }); } // Watch src directory for changes const srcDir = path.join(__dirname, 'src'); if (fs.existsSync(srcDir)) { fs.watch(srcDir, { recursive: true }, (eventType, filename) => { if (filename && (filename.endsWith('.ts') || filename.endsWith('.tsx') || filename.endsWith('.css') || filename.endsWith('.scss'))) { console.log(`šŸ“ File changed: ${filename}`); setTimeout(buildPackage, 500); // Debounce builds } }); } else { console.log('āš ļø src/ directory not found. Make sure you run this from the kupos-ui-components directory.'); } // Initial build buildPackage(); // Keep the process running process.on('SIGINT', () => { console.log('\nšŸ‘‹ Stopping watch mode...'); process.exit(0); });