Skip to content

Сборка и упаковка

Когда вы довольны тем, как выглядит ваша тема, вы превращаете её в один файл, который сервер Pano может установить. Эта страница проведёт вас через сборку, проверку и упаковку темы — предварительный опыт не требуется.

Сборка для разработки и production-сборка

Во время работы вы запускаете bun run dev. Это сборка для разработки: она быстрая, обновляется в момент сохранения файла и пропускает медленные шаги, которые не нужны при проектировании. Она предназначена только для ваших глаз, на вашем собственном компьютере.

Когда вы готовы к выпуску, вы создаёте production-сборку. Это отполированная версия: всё оптимизировано, упаковано компактно и подготовлено к работе на реальном сервере. Посетители настоящего сайта Pano всегда видят production-сборку.

Ничего не нужно переключать вручную — команды ниже делают всё правильно.

Идентичность вашей темы — manifest.json

В корне папки вашей темы лежит manifest.json — карточка, которая говорит Pano (и всем остальным), что представляет собой эта тема. Каркас создал его за вас, но перед выпуском вам следует его заполнить:

json
{
  "id": "my-theme",
  "title": "My Theme",
  "description": "A clean, dark theme for survival servers",
  "version": "1.0.0",
  "author": "YourName",
  "panoVersion": "1.0.0",
  "screenshots": ["screenshots/1.png"],
  "premium": false
}
ПолеЧто это такое
idУникальный идентификатор вашей темы — имя в нижнем регистре, разделённое дефисами, как my-theme. Pano использует его, чтобы различать темы, а файл пакета назван в его честь (my-theme-1.0.0.zip). Выберите его однажды и никогда не меняйте после публикации: новый id считается совершенно другой темой. Он также не должен быть vanilla-themecheck это отклонит.
titleЧеловекочитаемое имя, показываемое пользователям в панели.
descriptionОдно-два предложения о том, как выглядит тема.
versionВерсия выпуска. Если вы используете автоматизацию выпуска, она проставляется за вас — не повышайте её вручную.
authorВаше имя или имя команды.
panoVersionВерсия Pano, на которую нацелена ваша тема.
screenshotsСписок путей к изображениям (см. ниже).
premiumfalse для бесплатной темы; true включает защиту платной лицензией. См. Публикация и Premium.

Добавление скриншотов

Положите изображения в папку screenshots/ в корне вашей темы и перечислите их в манифесте:

my-theme/
├─ manifest.json
└─ screenshots/
   ├─ 1.png
   └─ 2.png
json
"screenshots": ["screenshots/1.png", "screenshots/2.png"]

Сборка автоматически копирует папку screenshots/ в ваш пакет, поэтому изображения отправляются внутри .zip. Хороший скриншот — полностраничный снимок главной страницы вашей темы: это первое, что люди видят при просмотре тем.

Шаг 1 — Проверка

Перед сборкой запустите страховочную сеть:

sh
bun run check

Эта команда проверяет вашу тему и не даёт выпустить что-то сломанное. Она проверяет:

Что проверяетПочему это важно
Версия SvelteВаша версия svelte должна точно совпадать с версией движка. Расхождение молча ломает установленные плагины.
Сохранены слоты плагиновЛюбое изменённое вами представление должно по-прежнему содержать все точки монтирования плагинов, что были в оригинале. Удалите хоть одну — и установленные плагины молча исчезнут.
Корректность схемы настроекДобавленные вами настройки должны быть объявлены правильно, чтобы панель могла их сохранять и сбрасывать.
Разбор переводовКаждый файл в lang-overrides/ должен быть корректным и чисто сливаться. См. Локализация.
Полнота манифестаmanifest.json должен содержать все обязательные поля, а его id не должен быть vanilla-theme.

Если check сообщает о проблеме, исправьте её и запустите снова. Зелёный check означает, что тему можно собирать и упаковывать.

Шаг 2 — Сборка

Откройте терминал в папке вашей темы и выполните:

sh
bun run build

Эта команда создаёт готовую, оптимизированную версию вашей темы в папке build/. Считайте папку build/ вашей темой, полностью собранной и готовой, — но ещё не упакованной.

Сборки воспроизводимы

Сборка одного и того же кода дважды даёт побайтово идентичный результат. Для премиум-тем это очень важно: SHA-256 пакета (уникальный отпечаток файла) является идентификатором вашей лицензии. Один и тот же код на входе — один и тот же отпечаток на выходе. См. Публикация и Premium.

Шаг 3 — Упаковка

Теперь заверните сборку в один устанавливаемый файл:

sh
bun run package

Эта команда создаёт файл .zip — самодостаточный пакет, который сервер Pano может установить прямо из панели. Этот один файл и есть вся ваша тема.

Установка и тестирование на своём сервере

Прежде чем делиться темой, установите её на свой Pano, чтобы убедиться, что она работает от начала до конца:

  1. Откройте панель Pano в браузере и войдите как администратор.
  2. Перейдите в Просмотр → Темы.
  3. Выберите Установить (или Установить тему) и загрузите только что собранный .zip.
  4. Активируйте тему и откройте сайт, чтобы увидеть её вживую.

TIP

Это в точности тот же процесс установки, которому будут следовать ваши пользователи. Протестировав его самостоятельно первым, вы избежите сюрпризов, когда вашу тему установит кто-то другой.

Что дальше