Collaborative-pixel-art/scripts/setup.js
2025-08-22 19:28:05 +02:00

75 lines
No EOL
2 KiB
JavaScript

#!/usr/bin/env node
const { execSync } = require('child_process');
const fs = require('fs');
const path = require('path');
console.log('🎨 Setting up GaPlace...\n');
// Check if required files exist
const requiredFiles = [
'backend/.env',
'frontend/.env.local'
];
console.log('📋 Checking environment files...');
requiredFiles.forEach(file => {
if (!fs.existsSync(file)) {
console.log(`❌ Missing: ${file}`);
process.exit(1);
} else {
console.log(`✅ Found: ${file}`);
}
});
// Build shared package
console.log('\n📦 Building shared package...');
try {
execSync('npm run build', { cwd: 'shared', stdio: 'inherit' });
console.log('✅ Shared package built successfully');
} catch (error) {
console.error('❌ Failed to build shared package');
process.exit(1);
}
// Install dependencies for all workspaces
console.log('\n📦 Installing dependencies...');
try {
execSync('npm install', { stdio: 'inherit' });
console.log('✅ Dependencies installed successfully');
} catch (error) {
console.error('❌ Failed to install dependencies');
process.exit(1);
}
// Build backend
console.log('\n🔧 Building backend...');
try {
execSync('npm run build', { cwd: 'backend', stdio: 'inherit' });
console.log('✅ Backend built successfully');
} catch (error) {
console.error('❌ Failed to build backend');
process.exit(1);
}
// Build frontend
console.log('\n🎨 Building frontend...');
try {
execSync('npm run build', { cwd: 'frontend', stdio: 'inherit' });
console.log('✅ Frontend built successfully');
} catch (error) {
console.error('❌ Failed to build frontend');
process.exit(1);
}
console.log('\n🚀 Setup complete! To start development:');
console.log('');
console.log('1. Start databases:');
console.log(' docker-compose up redis postgres -d');
console.log('');
console.log('2. Start development servers:');
console.log(' npm run dev');
console.log('');
console.log('3. Open http://localhost:3000 in your browser');
console.log('');
console.log('🎨 Welcome to GaPlace! ✨');