/* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable no-undef */ /* eslint-disable @typescript-eslint/no-unused-vars */ const fs = require('fs'); const path = require('path'); const { JSDOM } = require('jsdom'); // Настройка окружения для SSR const setupDOM = () => { const dom = new JSDOM('
', { url: 'http://localhost', pretendToBeVisual: true, resources: 'usable' }); global.window = dom.window; global.document = dom.window.document; global.navigator = dom.window.navigator; global.HTMLElement = dom.window.HTMLElement; global.HTMLDivElement = dom.window.HTMLDivElement; global.requestAnimationFrame = (callback) => setTimeout(callback, 0); global.cancelAnimationFrame = clearTimeout; }; const cleanupRender = () => { delete global.window; delete global.document; delete global.navigator; delete global.HTMLElement; delete global.HTMLDivElement; delete global.requestAnimationFrame; delete global.cancelAnimationFrame; }; const prerender = async () => { try { console.log('🚀 Начинаем SSR пре-рендеринг...'); setupDOM(); // Читаем HTML шаблон const indexPath = path.resolve(__dirname, '../dist/index.html'); let html = fs.readFileSync(indexPath, 'utf-8'); // Рендерим статический контент страницы "в разработке" const prerenderContent = `Страница загружается...