ファイルベースのエントリー
addfox.config.ts の entry フィールドを設定しない場合、Addfox は規約に従って自動的にエントリーファイルを検出します。これはお勧めの開発方法で、設定ではなくビジネスコードに集中できます。
コア原則
Rsbuild に基づくビルド
- エントリーは JS/TS である必要がある:実際のビルドエントリーは
.js、.jsx、.ts、.tsxスクリプトのみ - HTML の処理:
- HTML を提供しない → Rsbuild が自動的に生成
- HTML を提供する → テンプレートとして使用しますが、
data-addfox-entryを介してエントリースクリプトを指定する必要がある
ディレクトリ構造の規約
スクリプトのみのエントリー(background / content)
これらのエントリーには HTML ページは不要で、スクリプトファイルのみを提供します。
ページが必要なエントリー(popup / options / sidepanel / devtools / offscreen)
これらのエントリーは HTML + JS を出力します。2つの方法をサポートしています:
方法1:HTML を提供しない(推奨)
スクリプトのみを記述し、HTML は記述しません。Rsbuild が自動的に HTML を生成し、スクリプトを注入します。
index.html などのテンプレートを提供せず、ビルドによって HTML を自動生成する場合、Addfox / Rsbuild は以下を規約します:
- マウントノード:ページには
<div id="root"></div>が含まれ、React / Vue などのcreateRoot/mountで使用されます。 <title>``**:拡張機能マニフェスト **manifest.name` と一致します(manifest の変更に応じて更新されます)。- タブアイコン(favicon):
<link rel="icon">を介して注入され、hrefはmanifest.iconsから取得されます(適切なサイズを選択し、パスは出力 HTML の位置から相対パスとして解決されます)。
カスタム HTML テンプレートをエントリーで使用する場合、上記の title / アイコン注入は自動的に適用されず、テンプレートで自分で <title> とアイコン <link> を作成する必要があります(data-addfox-entry とマウントノード、通常は #root を保持する必要があります)。
方法2:HTML テンプレートを提供
カスタムページ構造が必要な場合は、エントリーディレクトリ(または同じ名前の単一ファイルの隣)に HTML ファイルを配置できます。
カスタム HTML を使用する場合、必ず data-addfox-entry 属性を介してエントリースクリプトを指定する必要があります。そうしないと、フレームワークは認識できません。
data-addfox-entryは1つの HTML ファイルに1回のみ出現可能srcは相対パスで、同じディレクトリまたは他の場所のスクリプトを指すことが可能- その他のリソース(CSS、画像など)は、エントリースクリプトで
importを介して読み込んでください。HTML で直接参照しないでください - HTML ファイル自体はコンパイルに参加せず、テンプレートとしてのみ使用されます
- カスタムテンプレートは manifest の
name/iconsを自動的に<title>と favicon に同期しません。上記の「自動生成された HTML のページ規約」は自動生成された HTML にのみ適用されます
完全な例
例1:すべての HTML を自動生成
例2:混在して使用
例3:フレームワークを使用(React を例に)
よくある質問
Q: エントリーファイルは index.ts である必要がありますか?
ディレクトリ形式では、index.(js|ts|jsx|tsx) である必要があります。単一ファイル形式では、エントリー名.(js|ts|jsx|tsx) になります。
Q: 複数レベルのネストされたディレクトリをサポートしていますか?
サポートしていません。エントリーディレクトリは1レベルのみ可能です。つまり、app/popup/index.ts ✓ ですが、app/pages/popup/index.ts ✗ です。
Q: 自動生成とカスタム HTML を混在させることはできますか?
可能です。各エントリーは独立して決定され、一部は自動生成を使用し、一部はカスタムテンプレートを使用できます。
Q: HTML テンプレートの問題をデバッグする方法は?
確認してください:
- HTML ファイルに
data-addfox-entry属性があるか srcパスがエントリースクリプトを正しく指しているかdata-addfox-entryを持つ script タグが1つだけあるか
次のステップ
- 設定ベースのエントリー — エントリーパスを明示的に設定する方法を学ぶ
- appDir 設定 — ソースコードディレクトリを変更する
- manifest 設定 — 拡張機能マニフェストを設定する

