33 lines
960 B
JavaScript
33 lines
960 B
JavaScript
import { build } from 'vite';
|
|
import { exec } from 'child_process';
|
|
import { promisify } from 'util';
|
|
|
|
const execAsync = promisify(exec);
|
|
|
|
async function buildProject() {
|
|
console.log('🚀 Начинаем сборку проекта...\n');
|
|
|
|
try {
|
|
// Линтинг перед сборкой
|
|
console.log('🔍 Проверка кода...');
|
|
await execAsync('npm run lint');
|
|
console.log('✅ Код проверен\n');
|
|
|
|
// Сборка
|
|
console.log('📦 Сборка проекта...');
|
|
await build();
|
|
console.log('✅ Проект собран\n');
|
|
|
|
// Анализ размера бандла
|
|
console.log('📊 Анализ размера файлов...');
|
|
await execAsync('npx vite-bundle-analyzer dist');
|
|
|
|
console.log('🎉 Сборка завершена успешно!');
|
|
} catch (error) {
|
|
console.error('❌ Ошибка сборки:', error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
buildProject();
|