Site Optimizer — десктопное приложение на Tauri 2 + React для оптимизации сайтов из ZIP-архива или папки.
Приложение умеет:
- открывать сайт из
.zipили из папки - конвертировать
png / jpg / jpeg / gifвwebp, только если это реально выгодно по размеру - обновлять ссылки на изображения в коде
- убирать
srcset / imagesrcset / sizes, когда это нужно - показывать экран проверки перед экспортом
- экспортировать результат в
ZIPили в папку - запускать быструю пакетную оптимизацию для нескольких сайтов
- включать и выключать пункты контекстного меню Windows из настроек приложения
- предлагать обновление приложения через
GitHub Releases
- Режимы входа:
ZIP-архивПапка
- Режимы экспорта:
ZIP-архивПапка
- Дополнительные опции очистки:
- удаление неиспользуемых картинок
- дедупликация одинаковых изображений по содержимому
- Интерфейс:
РусскийEnglish
- Быстрый пакетный режим для нескольких сайтов
- Встроенный updater с проверкой новой версии и прогрессом обновления
Поддерживаемые входные форматы:
pngjpgjpeggif
Основные правила:
- изображения переводятся в
webp - если после конвертации файл получается больше, оригинал сохраняется
- для анимированных
gifдействует та же безопасная проверка по размеру - подозрительные или динамические ссылки не переписываются вслепую
- коллизии имен вроде
image.pngиimage.jpgобрабатываются безопасно
- Выбирается
ZIPили папка сайта. - Приложение готовит рабочую копию.
- Изображения анализируются и оптимизируются.
- Пользователь проверяет результат.
- Результат экспортируется в
ZIPили в папку.
- Выбирается сразу несколько сайтов.
- Приложение обрабатывает их автоматически по очереди.
- Результаты сохраняются рядом с исходниками.
- После завершения показывается экран итогов.
Пункты контекстного меню для:
Оптимизировать сайтБыстро оптимизировать сайт
настраиваются из самого приложения через кнопку с шестеренкой рядом с версией.
Приложение поддерживает обновление через GitHub Releases и Tauri Updater.
Для этого используются:
installer.exeinstaller.exe.siglatest.json
Важно:
- приватный ключ подписи должен храниться только локально
- публичный ключ находится в конфиге приложения
- релизы для updater должны быть подписаны
Перед сборкой должны быть установлены:
Node.jsnpmRustMicrosoft Visual Studio C++ Build Toolsили Visual Studio с desktop C++ toolchainWebView2
Рекомендуется:
Node.js 20+- актуальный
Rust stable
- Установить зависимости фронтенда:
npm install- Собрать приложение:
npm.cmd run tauri buildГотовые сборки обычно появляются здесь:
src-tauri/target/release/bundle/nsissrc-tauri/target/release/bundle/msi
Если нужен updater-релиз, перед сборкой нужно выставить переменные окружения:
$env:TAURI_SIGNING_PRIVATE_KEY = Get-Content .\src-tauri\signing\site-optimizer.key -Raw
$env:TAURI_SIGNING_PRIVATE_KEY_PASSWORD = "ваш-пароль"
npm.cmd run tauri buildПосле этого для релиза используются:
installer.exeinstaller.exe.siglatest.json
Нельзя коммитить в репозиторий:
src-tauri/signing/site-optimizer.key- любые приватные ключи подписи
- пароли от ключей
Папка src-tauri/signing/ должна оставаться вне git.
Приложение создает:
<имя>_optimized.zip<имя>_optimized/
Временная рабочая папка:
<имя>_optimizer_work/