- SSR-пререндер через Vite + react-dom/server (entry-server.jsx, scripts/prerender.mjs) - Секция партнёров: RU-CENTER, REG.RU, МТВ, КОНТУР - Реквизиты компании в футере (ИНН, ОГРН, банк) - Копирайт с 2011 года - Логотип увеличен (h-8→h-12 навбар, h-7→h-10 футер) - favicon.ico пересобран с 16×16, 32×32, 48×48 из logo.png - og:image и twitter:image переключены на .png - apple-touch-icon.png и og-image.png сгенерированы через sharp - SSR-safe: localStorage и window.location проверяются на typeof Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
20 lines
724 B
JavaScript
20 lines
724 B
JavaScript
import { readFileSync, writeFileSync, rmSync } from 'fs'
|
|
import { resolve, dirname } from 'path'
|
|
import { fileURLToPath } from 'url'
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
const root = resolve(__dirname, '..')
|
|
|
|
// Import SSR bundle built by vite build --ssr
|
|
const { render } = await import('../dist/server/entry-server.js')
|
|
|
|
const template = readFileSync(resolve(root, 'dist/index.html'), 'utf-8')
|
|
const appHtml = render()
|
|
const html = template.replace('<div id="root"></div>', `<div id="root">${appHtml}</div>`)
|
|
writeFileSync(resolve(root, 'dist/index.html'), html)
|
|
|
|
// Cleanup SSR bundle
|
|
rmSync(resolve(root, 'dist/server'), { recursive: true, force: true })
|
|
|
|
console.log('✓ Prerendered index.html')
|