Ограничения и зависимости
Только то, что собирается под веб
Расширение собирается Vite в ESM для выполнения в рендерере лаунчера (веб-оболочка на базе Chromium / аналога). Значит:
- Нельзя рассчитывать на произвольные Node-only пакеты (прямой доступ к
fs, дочерние процессы Node, нативные аддоны.node, ожидающие полный Node API), если они не заменены полифилами и не попали в бандл осмысленно. - Нельзя подключать к расширению тяжёлые зависимости, которые не предназначены для браузера и тянут Node-специфику без конфигурации — сборка упадёт или рантайм сломается.
Перед добавлением зависимости проверяйте: есть ли у пакета браузерная точка входа, не требует ли он Worker с Node, не использует ли встроенные модули Node без условных экспортов.
Что «обычно» безопасно
vue,@vueuse/coreи другие библиотеки с явной поддержкой браузера.- Модули
@rynt/sdkи Vue-компоненты из корневого экспорта@rynt/sdk(подключаются так же, как в основном интерфейсе лаунчера). - HTTP/WebSocket-клиенты, работающие в браузере (
axios,fetch).
Native / десктоп API лаунчера
Если нужны операции вне песочницы браузера (диск, процессы, нативное окно), это должно быть явно предоставлено лаунчером (отдельный bridge, IPC, зарегистрированный API). Не подключайте к расширению произвольные NW / Electron-специфичные модули без поддержки в загрузчике.
Размер и производительность
Бандл расширения загружается и выполняется вместе с UI. Избегайте неоправданно больших зависимостей; при необходимости делите код (динамические импорты там, где это поддерживает ваш сценарий и сборка).
Секреты
Не встраивайте ключи API и пароли в исходники расширения: бандл доступен пользователю. Для секретов нужен серверный контур или безопасное хранилище, предоставляемое лаунчером (когда такой контракт появится — документируется отдельно).