Entradas basadas en archivos
Cuando no configuras el campo entry en addfox.config.ts, Addfox descubrirá automáticamente los archivos de entrada según las convenciones. Esta es la forma de desarrollo recomendada, permitiéndote enfocarte en el código de negocio en lugar de la configuración.
Principios fundamentales
Construcción basada en Rsbuild
- La entrada debe ser JS/TS: Las entradas reales de construcción solo pueden ser scripts
.js,.jsx,.ts,.tsx - Manejo de HTML:
- No proporcionar HTML → Rsbuild genera automáticamente
- Proporcionar HTML → Se usa como plantilla, pero debe marcar el script de entrada mediante
data-addfox-entry
Convenciones de estructura de directorios
Entradas solo script (background / content)
Estas entradas no necesitan páginas HTML, solo necesitan proporcionar archivos de script.
Entradas que necesitan páginas (popup / options / sidepanel / devtools / offscreen)
Estas entradas producirán HTML + JS. Soportan dos formas:
Forma 1: No proporcionar HTML (recomendado)
Solo escribe script, no escribas HTML. Rsbuild generará automáticamente HTML e inyectará el script.
Cuando no se proporciona index.html u otra plantilla, el HTML se genera automáticamente por construcción, Addfox / Rsbuild convendrá:
- Nodo de montaje: La página contendrá
<div id="root"></div>, para uso concreateRoot/mountde React / Vue, etc. <title>: Consistente conmanifest.namede la extensión (se actualiza con los cambios de manifest).- Icono de pestaña (favicon): Se inyecta a través de
<link rel="icon">, elhrefproviene demanifest.icons(se selecciona el tamaño apropiado según reglas, la ruta se resuelve como relativa a la ubicación del HTML de salida).
Si usas plantillas HTML personalizadas en esta entrada, no se aplicarán automáticamente las inyecciones de title / icono anteriores; necesitas escribir <title> e icono <link> tú mismo en la plantilla (aún necesitas conservar data-addfox-entry y el nodo de montaje, generalmente sigue siendo #root).
Forma 2: Proporcionar plantilla HTML
Si necesitas personalizar la estructura de la página, puedes colocar archivos HTML en el directorio de entrada (o junto al archivo del mismo nombre).
Al usar HTML personalizado, debes marcar el script de entrada mediante el atributo data-addfox-entry, de lo contrario el framework no puede reconocerlo.
data-addfox-entrysolo puede aparecer una vez en un archivo HTMLsrcpuede ser ruta relativa, apuntando a script en el mismo directorio u otra ubicación- Otros recursos (CSS, imágenes, etc.) deben importarse en el script de entrada mediante
import, no referenciarse directamente en HTML - El archivo HTML en sí no participa en la compilación, solo se usa como plantilla
- Plantillas personalizadas no sincronizarán automáticamente
name/iconsdel manifest a<title>y favicon; solo el HTML generado automáticamente aplicará las convenciones anteriores de "páginas HTML generadas automáticamente"
Ejemplos completos
Ejemplo 1: Generar automáticamente todo el HTML
Ejemplo 2: Uso mixto
Ejemplo 3: Usar framework (ejemplo con React)
Preguntas frecuentes
P: ¿El archivo de entrada debe llamarse index.ts?
Forma de directorio debe ser index.(js|ts|jsx|tsx). Forma de archivo único puede ser nombre_de_entrada.(js|ts|jsx|tsx).
P: ¿Se permiten directorios anidados de múltiples niveles?
No soportado. Los directorios de entrada solo pueden tener un nivel, es decir, app/popup/index.ts ✓, mientras que app/pages/popup/index.ts ✗.
P: ¿Se puede mezclar generación automática y HTML personalizado?
Sí. Cada entrada decide independientemente, algunas usan generación automática, otras usan plantillas personalizadas.
P: ¿Cómo depurar problemas de plantillas HTML?
Verificar:
- Si el archivo HTML tiene el atributo
data-addfox-entry - Si la ruta
srcapunta correctamente al script de entrada - Si solo hay una etiqueta script con
data-addfox-entry
Siguientes pasos
- Entradas basadas en configuración — Aprender cómo configurar rutas de entrada explícitamente
- Configuración de appDir — Modificar el directorio de código fuente
- Configuración de manifest — Configurar el manifiesto de extensión

