112 lines
4.5 KiB
JavaScript
112 lines
4.5 KiB
JavaScript
import fs from 'fs';
|
||
import path from 'path';
|
||
import { fileURLToPath } from 'url';
|
||
import { execSync } from 'child_process';
|
||
import chalk from 'chalk'; // Для цветного вывода
|
||
|
||
// ES модули не поддерживают __dirname, поэтому создаем его
|
||
const __filename = fileURLToPath(import.meta.url);
|
||
const __dirname = path.dirname(__filename);
|
||
|
||
// Проверка наличия пакета chalk и его установка при необходимости
|
||
try {
|
||
import('chalk');
|
||
} catch (e) {
|
||
console.log('Устанавливаем пакет chalk для цветного вывода...');
|
||
execSync('yarn add chalk --dev', { stdio: 'inherit' });
|
||
console.log('Пакет chalk установлен.');
|
||
}
|
||
|
||
// Функция для проверки наличия файла
|
||
function checkFileExists(filePath, errorMessage) {
|
||
const fullPath = path.resolve(__dirname, '..', filePath);
|
||
if (!fs.existsSync(fullPath)) {
|
||
console.log(chalk.red(errorMessage));
|
||
process.exit(1);
|
||
}
|
||
console.log(chalk.green(`✓ Файл ${path.basename(filePath)} найден`));
|
||
}
|
||
|
||
// Функция для проверки импортов стилей в App.vue
|
||
function checkStyleImports() {
|
||
const appVuePath = path.resolve(__dirname, '..', 'src', 'App.vue');
|
||
try {
|
||
const appVueContent = fs.readFileSync(appVuePath, 'utf8');
|
||
|
||
const requiredImports = [
|
||
'./assets/styles/variables.css',
|
||
'./assets/styles/base.css',
|
||
'./assets/styles/layout.css',
|
||
'./assets/styles/global.css'
|
||
];
|
||
|
||
let allImportsFound = true;
|
||
|
||
for (const importPath of requiredImports) {
|
||
if (!appVueContent.includes(`import '${importPath}'`)) {
|
||
console.log(chalk.red(`✗ Импорт ${importPath} не найден в App.vue!`));
|
||
allImportsFound = false;
|
||
} else {
|
||
console.log(chalk.green(`✓ Импорт ${importPath} найден в App.vue`));
|
||
}
|
||
}
|
||
|
||
if (!allImportsFound) {
|
||
console.log(chalk.yellow('Убедитесь, что в App.vue импортируются все нужные стили:'));
|
||
requiredImports.forEach(imp => console.log(` import '${imp}';`));
|
||
}
|
||
} catch (error) {
|
||
console.log(chalk.red(`Ошибка при чтении App.vue: ${error.message}`));
|
||
process.exit(1);
|
||
}
|
||
}
|
||
|
||
// Функция для проверки компонентов настроек
|
||
function checkSettingsComponents() {
|
||
const settingsDir = path.resolve(__dirname, '..', 'src', 'components', 'settings');
|
||
const requiredComponents = [
|
||
'AISettings.vue',
|
||
'BlockchainSettings.vue',
|
||
'SecuritySettings.vue',
|
||
'InterfaceSettings.vue'
|
||
];
|
||
|
||
for (const component of requiredComponents) {
|
||
const componentPath = path.join(settingsDir, component);
|
||
if (fs.existsSync(componentPath)) {
|
||
console.log(chalk.green(`✓ Компонент ${component} найден`));
|
||
} else {
|
||
console.log(chalk.red(`✗ Компонент ${component} не найден!`));
|
||
}
|
||
}
|
||
}
|
||
|
||
// Запуск скрипта
|
||
console.log(chalk.blue('======================================='));
|
||
console.log(chalk.green('Запуск проекта с обновленными стилями'));
|
||
console.log(chalk.blue('======================================='));
|
||
|
||
// Проверка наличия всех файлов стилей
|
||
checkFileExists('src/assets/styles/global.css', 'Ошибка: файл global.css не найден!');
|
||
checkFileExists('src/assets/styles/variables.css', 'Ошибка: файл variables.css не найден!');
|
||
checkFileExists('src/assets/styles/base.css', 'Ошибка: файл base.css не найден!');
|
||
checkFileExists('src/assets/styles/layout.css', 'Ошибка: файл layout.css не найден!');
|
||
|
||
// Проверка импортов стилей
|
||
console.log(chalk.yellow('Проверка imports стилей...'));
|
||
checkStyleImports();
|
||
|
||
// Проверка компонентов настроек
|
||
checkSettingsComponents();
|
||
|
||
console.log(chalk.blue('---------------------------------------'));
|
||
console.log(chalk.yellow('Запуск сервера разработки...'));
|
||
console.log(chalk.blue('---------------------------------------'));
|
||
|
||
// Выходим успешно, т.к. сам запуск выполняется командой yarn dev:styles
|
||
try {
|
||
process.exit(0);
|
||
} catch (error) {
|
||
console.log(chalk.red(`Ошибка при запуске сервера разработки: ${error.message}`));
|
||
process.exit(1);
|
||
}
|