Entry 개념
Entry는 브라우저 확장의 다양한 기능 모듈에 해당하며, 백그라운드 스크립트, 콘텐츠 스크립트, 팝업 페이지 등입니다. Addfox는 세 가지 구성 방식을 제공하며, 단독으로 사용하거나 혼합하여 사용할 수 있습니다.
Entry란 무엇인가
브라우저 확장은 여러 독립적인 기능 모듈로 구성되며, 각 모듈에는 Entry 파일이 필요합니다:
popup / options / sidepanel / devtools / offscreen 등 HTML이 필요한 Entry의 경우: 사용자 지정 index.html을 제공하지 않으면 빌드가 자동으로 페이지를 생성하며, 여기에는 <div id="root"></div>가 포함됩니다. <title>은 manifest.name과 일치하며, 탭 아이콘은 <link rel="icon">을 통해 manifest.icons에서 가져옵니다. 사용자 지정 HTML 템플릿을 사용할 때는 title, 아이콘 및 마운트 노드를 직접 작성해야 합니다 (자세한 내용은 파일 기반 Entry 참조).
구성 방식
방식 1: 파일 기반 (권장)
entry를 구성하지 않고, 프레임워크가 디렉토리와 파일 이름에 따라 Entry를 자동으로 발견하도록 합니다.
장점:
- 제로 구성, 규칙을 따르기만 하면 됩니다
- 새로운 Entry를 추가하려면 해당 디렉토리를 만들기만 하면 됩니다
- 코드 구조가 명확합니다
자세한 내용은 파일 기반 Entry를 참조하세요.
방식 2: 구성 기반 (entry + manifest)
addfox.config.ts에서 entry와 manifest를 통해 Entry 관련 기능을 구성합니다:
장점:
- Entry 및 매니페스트 구성의 중앙 집중식 관리
- 사용자 지정 Entry 이름 지원
- 자동 발견 결과를 덮어쓸 수 있습니다
자세한 내용은 구성 기반 Entry 및 manifest 구성을 참조하세요.
혼합 사용
세 가지 방식을 혼합하여 사용할 수 있으며, 우선순위는 다음과 같습니다:
- 최고:
config.entry에 구성된 Entry - 둘째: manifest에 지정된 소스 파일 경로
- 셋째: 자동 발견
핵심 원칙
Entry는 JS/TS여야 합니다
Addfox는 Rsbuild를 기반으로 빌드하며, 실제 빌드 Entry는 .js, .jsx, .ts, .tsx 스크립트 파일만 될 수 있습니다.
HTML 처리
- HTML이 필요 없는 Entry:
background,content는 스크립트 파일만 필요 - HTML이 필요한 Entry:
popup,options,sidepanel,devtools,offscreen- HTML을 제공하지 않으면 Rsbuild가 자동으로 생성합니다 (
<div id="root"></div>포함) - 사용자 지정 HTML 템플릿을 제공하는 경우 템플릿에서
data-addfox-entry로 Entry 스크립트를 표시해야 합니다
- HTML을 제공하지 않으면 Rsbuild가 자동으로 생성합니다 (
예시: 사용자 지정 HTML 템플릿
내장 Entry 및 사용자 지정 Entry
내장 Entry (예약 이름)
다음 이름들은 특수한 의미를 가지며, Addfox가 자동으로 인식하고 처리합니다:
내장 Entry 이름은 수정할 수 없습니다. 프레임워크는 이러한 이름을 자동 인식 및 manifest 경로 채우기에 의존합니다.
사용자 지정 Entry
내장 Entry 외에도 entry에서 임의의 이름을 사용자 지정 Entry로 구성할 수 있습니다 (예: capture, my-page):
사용자 지정 Entry는 독립적인 페이지를 생성하며 chrome-extension://<id>/capture/index.html로 접근할 수 있습니다.
다음 단계
- 파일 기반 Entry — 규칙 기반 Entry 발견 규칙 학습
- 구성 기반 Entry — entry + manifest를 명시적으로 구성하는 방법 알아보기
- manifest 구성 — manifest에서 확장 기능 구성

