Запуск браузера

Addfox может автоматически запускать браузер и загружать расширение при разработке, повышая эффективность разработки.

Быстрый старт

Запустите команду разработки:

pnpm
npm
yarn
bun
pnpm dev

При первом запуске сервера разработки автоматически:

  1. Собирается расширение
  2. Открывается браузер
  3. Загружается расширение в разработке

Использование Scripts для запуска (рекомендуется)

Настройте scripts в package.json для более лаконичного запуска разных браузеров:

{
  "scripts": {
    "dev": "addfox dev",
    "dev:chrome": "addfox dev -b chrome",
    "dev:edge": "addfox dev -b edge",
    "dev:brave": "addfox dev -b brave",
    "dev:firefox": "addfox dev -b firefox"
  }
}

После настройки используйте напрямую:

pnpm
npm
yarn
bun
# Chrome (по умолчанию)
pnpm dev

# Другие браузеры
pnpm dev:edge
pnpm dev:firefox

Браузеры на базе Chromium

Addfox нативно поддерживает следующие браузеры на базе Chromium:

БраузерCLI параметрОписание
Google Chrome-b chromeБраузер по умолчанию
Chromium-b chromiumОткрытая версия
Microsoft Edge-b edgeПредустановлен в Windows
Brave-b braveБраузер конфиденциальности
Vivaldi-b vivaldiНастраиваемый браузер
Opera-b operaБраузер Opera
Santa-b santaSanta браузер
Arc-b arcБраузер нового формата
Yandex-b yandexЯндекс браузер
BrowserOS-b browserosBrowserOS
Custom-b customПользовательский браузер (требуется настройка browser.custom)

Прямой запуск через CLI

Если не использовать scripts, можно напрямую указать браузер через CLI:

pnpm
npm
yarn
bun
# Chrome (по умолчанию)
pnpm addfox dev

# Другие браузеры
pnpm addfox dev -b edge
pnpm addfox dev -b brave
pnpm addfox dev -b vivaldi

Конфигурация браузеров Chromium

Если браузер не находится в стандартном расположении, можно указать объект browser в конфигурации:

// addfox.config.ts
export default defineConfig({
  browser: {
    chrome: { path: "/path/to/chrome" },
    edge: { path: "/path/to/edge" },
    brave: { path: "/path/to/brave" },
  },
});

Каждая запись браузера поддерживает поля:

  • path — путь к исполняемому файлу браузера
  • profile — пользовательская директория user-data (профиля); относительные пути разрешаются относительно корня проекта (по умолчанию <outputRoot>/cache/browser-profile/<name>-user-data)
  • keepBrowserProfile — сохранять профиль этого браузера между запусками, переопределяя верхнеуровневый keepBrowserProfile
Warning

browserPath устарел (deprecated). Мигрируйте на browser:

// До (устарело)
export default defineConfig({
  browserPath: { chrome: "/path/to/chrome" },
});

// После
export default defineConfig({
  browser: { chrome: { path: "/path/to/chrome" } },
});

Если для одного браузера заданы оба поля, приоритет имеет browser.

Примеры для разных платформ

macOS:

export default defineConfig({
  browser: {
    chrome: { path: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" },
    edge: { path: "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge" },
  },
});

Windows:

export default defineConfig({
  browser: {
    chrome: { path: "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe" },
    edge: { path: "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe" },
  },
});

Linux:

export default defineConfig({
  browser: {
    chrome: { path: "/usr/bin/google-chrome" },
    chromium: { path: "/usr/bin/chromium-browser" },
  },
});

Кэширование пользовательских данных Chromium

По умолчанию при каждом запуске используется новая директория пользовательских данных. Для сохранения (например, состояния входа) добавьте в package.json:

{
  "scripts": {
    "dev:keep-profile": "addfox dev -b chrome --keep-browser-profile",
    "dev:edge:keep-profile": "addfox dev -b edge --keep-browser-profile"
  }
}

Или запустите напрямую через CLI:

pnpm
npm
yarn
bun
pnpm addfox dev --keep-browser-profile

Или включите в конфигурации:

export default defineConfig({
  keepBrowserProfile: true,
});

Или переопределите для отдельного браузера (приоритет выше верхнеуровневого keepBrowserProfile):

export default defineConfig({
  browser: {
    chrome: { keepBrowserProfile: true },
  },
});

Пользовательские данные сохраняются в директории .addfox/cache/browser-profile/<name>-user-data.

Firefox

Режим разработки Firefox использует инструмент web-ext для управления жизненным циклом расширения.

Запуск Firefox

Используйте настроенный script:

pnpm dev:firefox

Или запустите напрямую через CLI:

pnpm
npm
yarn
bun
pnpm addfox dev -b firefox

Особенности Firefox

  • Перезагрузка расширения обрабатывается web-ext, а не WebSocket от Addfox
  • Автоматически открывается Firefox и загружается расширение
  • Поддерживается автоматическая перезагрузка при изменении файлов

Конфигурация пути к Firefox

export default defineConfig({
  browser: {
    firefox: { path: "/Applications/Firefox.app/Contents/MacOS/firefox" },
  },
});
Info

Профиль Firefox автоматически управляется web-ext, ручная настройка кэширования не требуется.

Советы по отладке

Просмотр Service Worker

  1. Откройте chrome://extensions/
  2. Найдите расширение в разработке
  3. Нажмите "Service Worker" для просмотра консоли фонового скрипта

Просмотр Content Script

  1. На веб-странице правый клик → Просмотреть код
  2. Переключитесь на панель Console
  3. Выберите соответствующий контекст расширения

Использование мониторинга ошибок

Добавьте debug script в package.json:

{
  "scripts": {
    "dev:debug": "addfox dev --debug",
    "dev:firefox:debug": "addfox dev -b firefox --debug"
  }
}

Затем запустите:

pnpm dev:debug

Или включите напрямую через CLI:

pnpm
npm
yarn
bun
pnpm addfox dev --debug

Связанная конфигурация

  • browser — конфигурация браузера (путь, профиль, keepBrowserProfile)
  • keepBrowserProfile / buildCache — конфигурация кэширования
  • hotReload — конфигурация горячей перезагрузки
  • debug — конфигурация мониторинга ошибок