38 lines
1.3 KiB
JavaScript
38 lines
1.3 KiB
JavaScript
import { existsSync, rmSync, mkdirSync } from 'node:fs';
|
|
import { fileURLToPath } from 'node:url';
|
|
import path from 'node:path';
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
const projectRoot = path.resolve(__dirname, '..');
|
|
|
|
const astroCacheDir = path.join(projectRoot, '.astro');
|
|
const viteCacheDir = path.join(projectRoot, 'node_modules', '.vite');
|
|
|
|
console.log('⚙️ Setting up development environment...');
|
|
|
|
// Wipe .astro completely so content layer and route cache are fresh every dev run
|
|
try {
|
|
if (existsSync(astroCacheDir)) {
|
|
console.log(`Cleaning .astro cache: ${astroCacheDir}`);
|
|
rmSync(astroCacheDir, { recursive: true, force: true });
|
|
}
|
|
mkdirSync(astroCacheDir, { recursive: true });
|
|
} catch (error) {
|
|
console.error(`Failed to clean .astro: ${error.message}`);
|
|
}
|
|
|
|
// Wipe Vite deps cache so modules are re-resolved
|
|
try {
|
|
const viteDeps = path.join(viteCacheDir, 'deps');
|
|
if (existsSync(viteDeps)) {
|
|
console.log(`Cleaning Vite deps cache: ${viteDeps}`);
|
|
rmSync(viteDeps, { recursive: true, force: true });
|
|
}
|
|
if (!existsSync(viteCacheDir)) {
|
|
mkdirSync(viteCacheDir, { recursive: true });
|
|
}
|
|
} catch (error) {
|
|
console.error(`Failed to clean Vite cache: ${error.message}`);
|
|
}
|
|
|
|
console.log('✅ Development environment setup complete.');
|