Результат сборки
После nuckty build в outDir появляется статический артефакт, готовый к публикации. Страницы собраны заранее: сервер не генерирует их при каждом запросе. Для публикации нужны правила раздачи из руководства по хостингу.
Что внутри
- HTML — минимальный HTML5; допустимость структуры зависит от шаблонов.
- Ассеты: CSS и JS — бандлы по зависимостям, content-hash,
manifest.json. - Изображения — AVIF/WebP по одному адресу, общий
image-mapping.json. - Сжатие — Brotli Q11 + Gzip 9, нормализация байта ОС в gzip до
0xFF. - Конфигурация хостинга —
nginx.confи.htaccess, согласование форматов.
Структура артефакта
site/ ← outDir, публикуется целиком
├── html/<плоское>.html ← страницы: /how/bemjson → how_bemjson.html
├── css/<hash>.css ← CSS-бандлы с content-hash
├── js/<hash>.js ← JS-бандлы с content-hash
├── avif/ , webp/ ← варианты изображений: <hash>.avif, <hash>.webp
├── png/ , jpg/ , svg/ ← оригиналы изображений: <hash>.<ext>
├── brotli/ , gzip/ ← сжатые копии (плоские имена + суффикс кодека)
├── manifest.json ← размеры и хэши для публикации по манифесту
└── .htaccess ← для виртуального хостинга с Apache
Плоские имена файлов — часть модели: иерархический путь /how/bemjson превращается в файл how_bemjson.html. При запросе сервер сопоставляет URL с соответствующим плоским именем файла. Подробнее — конфигурация хостинга.
Готовность к публикации
Артефакт содержит .htaccess для совместимого Apache. nginx.conf находится отдельно в .build; команда nuckty serve генерирует собственный файл запуска. Для публикации скопируйте outDir выбранным способом; расширение FTP поддерживает FTP/FTPS. Удалённый сервер должен применять необходимые правила раздачи.