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 и меньшие риски цепочки поставок для конечных пользователей.

До и после: сторонние зависимости времени выполнения

ПакетСторонние зависимости (0.1.1)Сторонние зависимости (Dev-Launch)
@addfox/cliarchiver(нет)
@addfox/corecli-table3, jitijiti
create-addfox-appchalk, kolorist, minimist, promptsprompts
@addfox/rsbuild-plugin-extension-hmrchrome-launcher, web-ext(нет)
@addfox/launcherN/A (новый пакет)(нет)
@addfox/common(нет)(нет)
@addfox/pkg-manager(нет)(нет)
@addfox/utils@addfox/common@addfox/common
rsbuild-plugin-extension-entry@addfox/core@addfox/core
rsbuild-plugin-extension-manifest@addfox/core@addfox/core
rsbuild-plugin-extension-monitor@addfox/common, @addfox/core@addfox/common, @addfox/core

Что остается? Только две зрелые и крошечные сторонние зависимости времени выполнения:

  • 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!