Recarga en caliente (HMR)
El comando addfox dev proporciona experiencia de recarga en caliente durante el desarrollo: después de guardar el código, se reconstruye automáticamente y notifica a la extensión del navegador para recargar a través de WebSocket.
Mecanismo de trabajo
Mecanismos de recarga en caliente para diferentes entradas
Background / Service Worker
El script de Background usa el mecanismo de recarga de extensión:
- Cambio de código → Rsbuild reconstruye
- Construcción completada → WebSocket envía instrucción de recarga
- Llama
chrome.runtime.reload()para recargar toda la extensión - Service Worker se reinicia, carga nuevo código
Después de que Service Worker se recarga, pierde el estado en memoria. Si necesitas persistencia de datos, usa la API chrome.storage.
Content Script
El Content Script usa el mecanismo de reinyección:
- Cambio de código → Rsbuild reconstruye
- Construcción completada → Extensión recarga
- Content Script se inyecta automáticamente en páginas coincidentes
- Las pestañas abiertas pueden recargarse automáticamente (ver configuración)
Content Script se ejecuta en el entorno de página web, después de recargar se reinyecta en páginas coincidentes, no necesitas actualizar manualmente la página de administración de extensiones.
Popup / Options / Sidepanel
Las entradas de página usan el mecanismo Rsbuild HMR:
- Cambio de código → Rsbuild intenta reemplazo en caliente HMR
- Si HMR tiene éxito → Página se actualiza localmente, estado se conserva
- Si HMR falla → Retrocede automáticamente a actualización de página
- Velocidad de actualización más rápida
- Conservar estado de componentes (como entrada de formulario)
- Experiencia de desarrollo más fluida
Afectado por el mecanismo de Rsbuild, los archivos de plantilla HTML (como popup/index.html) no soportan verdadero reemplazo en caliente HMR.
Cuando modifiques la plantilla HTML, Addfox retrocederá a actualización de página o recarga de extensión.
Manejo especial de Firefox
El modo de desarrollo de Firefox usa la herramienta web-ext para gestionar la extensión:
- La recarga de extensión es manejada por
web-ext, no por WebSocket de Addfox - La primera ejecución abrirá automáticamente Firefox y cargará la extensión
- Soporta recarga automática (livereload)
Al desarrollar con Firefox, asegúrate de tener instalado el navegador Firefox. Addfox llamará automáticamente web-ext para manejar la carga y recarga de extensiones de Firefox.
Forma de uso
Flujo de primera ejecución
Después de ejecutar addfox dev:
- Primera construcción completada
- Abrir navegador automáticamente según configuración
- Cargar extensión en desarrollo
- Abrir automáticamente páginas popup/options de la extensión (si se configuró
open)
Opciones de configuración
Puerto de recarga en caliente
Siguientes pasos
- Configuración de browserPath — Configurar navegador para abrir automáticamente durante desarrollo
- Depuración de monitor — Usar panel de monitoreo de errores para depurar
- Configuración de hot-reload — Opciones completas de configuración de recarga en caliente

