browser

browser используется для настройки браузеров, которые автоматически открываются при разработке и загружают расширение: путь к исполняемому файлу, директория user-data (профиля) и сохранение профиля между запусками.

Обзор

  • Тип: Record<BrowserName, { path?: string; profile?: string; keepBrowserProfile?: boolean }>
  • Значение по умолчанию: undefined (используется системный путь по умолчанию)
  • Обязательный: Нет

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

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

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

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

БраузерКлюч конфигурацииПуть по умолчанию
Google ChromechromeАвтообнаружение
ChromiumchromiumАвтообнаружение
Microsoft EdgeedgeАвтообнаружение
BravebraveАвтообнаружение
VivaldivivaldiАвтообнаружение
OperaoperaАвтообнаружение
ArcarcАвтообнаружение

Пример конфигурации

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

Запуск через CLI

pnpm
npm
yarn
bun
pnpm dev -- -b chrome
pnpm dev -- -b edge
pnpm dev -- -b brave

Firefox

Firefox использует инструмент web-ext для управления расширением, конфигурация пути аналогична:

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

Запуск Firefox

pnpm
npm
yarn
bun
pnpm dev -- -b firefox
Info

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

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

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" },
    firefox: { path: "/Applications/Firefox.app/Contents/MacOS/firefox" },
  },
});

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" },
    firefox: { path: "/usr/bin/firefox" },
  },
});

Устарело: browserPath

browserPath по-прежнему работает, но выводит предупреждение об устаревании в терминале. Мигрируйте на browser:

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

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

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

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