CLI
На этой странице
CLI sitelo оборачивает встроенный Vite и автоматически подключает плагин HTML-страниц.
Команды
sitelo # то же, что sitelo dev
sitelo dev # сервер разработки
sitelo build # продакшн-сборка
sitelo preview # просмотр продакшн-сборки
sitelo lighthouse # аудит продакшн-сборкиdev— настоящий SSR-рендеринг по запросу, включая динамические маршруты, плюс небольшая панель разработчикаbuild— статический HTML вdist/(или в вашемoutDir)preview— локально отдаёт продакшн-сборкуlighthouse— аудит продакшн-сборки (нужна peer-зависимостьlighthouse)
Отключить панель можно через devToolbar: false в sitelo.config.js — см. Конфигурацию.
Полезные флаги
sitelo --port 8888
sitelo build --outDir public --emptyOutDir
sitelo --root docs--port/--host/--open— сервер--outDir/--emptyOutDir/--base— сборка--root— корень проекта (удобно для сайта вdocs/)--config— свой файл конфигурации Vite--mode/--logLevel/--debug
Всё, что переиспользуется между командами, лучше держать в параметрах Vite в sitelo.config.js под ключом vite.
Поиск неиспользуемого кода
knip находит файлы, экспорты и зависимости, которые ничем не используются. В проекте sitelo ему нужна одна подсказка: страницы и острова обнаруживаются в файловой системе, поэтому их никто не импортирует, и без подсказки knip сообщит, что весь сайт — неиспользуемые файлы.
npm install -D knipimport { knipConfig } from 'sitelo/knip'
export default knipConfig()npx knipknipConfig() читает ваш sitelo.config.js и помечает страницы и острова как точки входа — так же, как их находит сборка: pagesDir, pageExtensions, include и exclude учитываются целиком. То, что остаётся в отчёте, — код, до которого сайт действительно никогда не доходит.
Одного он увидеть не может: клиентский скрипт, на который страница ссылается по URL, а не через импорт, например <script src="/js/app.js">. Такие перечислите сами, а рядом передайте любые другие настройки knip — они попадут в результат. Завершающий ! — это пометка knip для продакшн-кода, каковым и является скрипт, отправляемый в браузер.
export default knipConfig({
entry: ['src/js/app.js!'], // то, что страницы подключают через <script src>
ignore: ['legacy/**'], // и любые другие настройки knip
})