Addfox 0.2.0: Рефакторинг архитектуры и сокращение зависимостей
25 мая 2026 г.
Мы рады поделиться последними достижениями фреймворка Addfox. Версия 0.2.0 уже официально выпущена, это важный релиз с рефакторингом архитектуры. Это обновление сосредоточено на трех ключевых целях: сокращении зависимостей, замене инструментов черного ящика встроенными альтернативами и улучшении опыта разработки расширений для браузера.
Сокращение зависимостей и безопасность цепочки поставок
Одним из наиболее значительных изменений в этом рефакторинге является агрессивное удаление сторонних зависимостей, которые тащили за собой большие деревья транзитивных зависимостей. Каждая внешняя зависимость — это потенциальный риск для цепочки поставок, будь то устаревание, злонамеренный захват или критические изменения в транзитивных пакетах. Заменив крупные сторонние инструменты сфокусированными внутренними утилитами, мы резко сократили поверхность атаки для пользователей Addfox.
Вот что мы удалили:
web-ext(~586 КБ + 26 транзитивных зависимостей) — полностью удален.chrome-launcher— удален.archiver(~40 КБ + 9 транзитивных зависимостей) — заменен собственной утилитой для zip.cli-table3(~46 КБ + 1 транзитивная зависимость) — удален из@addfox/core.chalk(~44 КБ),kolorist,minimist— удалены изcreate-addfox-appи заменены легковесными внутренними утилитами.
Результат: pnpm-lock.yaml сократился примерно на 2 156 строк, что означает более быструю установку, меньший размер node_modules и меньшие риски цепочки поставок для конечных пользователей.
До и после: сторонние зависимости времени выполнения
Что остается? Только две зрелые и крошечные сторонние зависимости времени выполнения:
jiti— легковесный загрузчик конфигураций TypeScript (~50 КБ, ноль транзитивных зависимостей).prompts— минимальная библиотека CLI-запросов (~30 КБ, ноль транзитивных зависимостей).
Все остальное либо внутреннее (@addfox/*), либо обрабатывается цепочкой инструментов сборки (@rspack/core как зависимость разработки).
Представляем @addfox/launcher
Ранее разработка для Firefox зависела от web-ext run — мощного инструмента с большим количеством зависимостей. Мы построили @addfox/launcher с нуля:
- Нулевые зависимости времени выполнения.
- Единая поддержка Chromium (Chrome, Edge и др.) и Gecko (Firefox, Zen и др.).
- HMR для Firefox теперь использует протокол RDP для прямой перезагрузки временных дополнений, устраняя необходимость в сложном управлении процессами
web-ext. - Удалены файлы совместимости, такие как
web-ext.d.ts,web-ext-logger.d.tsиweb-ext-console-stream-hook.ts.
Это делает сервер разработки более быстрым в запуске, проще в отладке и полностью под нашим контролем.
Рефакторинг плагина HMR
Пакет @addfox/rsbuild-plugin-extension-hmr получил наибольшее сокращение кода:
launcher.tsиrunner.tsбыли значительно упрощены после отказа отweb-ext.- Менеджер расширений теперь обрабатывает каталоги профилей и логику перезагрузки более чисто.
- Пути перезагрузки с клавиатуры и WebSocket-сервера были оптимизированы.
В целом, diff рабочей области показывает изменения примерно в 50 файлах с чистым сокращением ~1 641 строки кода: меньше кода для поддержки, меньше крайних случаев и более высокая надежность.
Усиленное покрытие тестами
Мы не просто удаляли код, но и инвестировали в качество:
rsbuild-plugin-extension-entry: +260 строк тестовrsbuild-plugin-extension-hmr: +114 строк тестовrsbuild-plugin-extension-manifest: +101 строка тестовrsbuild-plugin-extension-monitor: +112 строк тестов
Официальный релиз
Описанный выше рефакторинг архитектуры и сокращение зависимостей официально выпущены в версии 0.2.0. Обновитесь и спасибо за использование Addfox!


