Build Output

Build artifacts are output to browser-specific subdirectories under .addfox/extension/ (e.g., extension-chromium or extension-firefox).

Default Output Structure

.addfox
extension
extension-chromium# Chromium output
manifest.json
background
index.js
content
index.js
index.css
popup
index.html
index.js
options
index.html
index.js
icons
icon*.png
extension-firefox# Firefox output
cache# Dev cache

Custom Output Directory

Use outDir config to change the output directory name:

// addfox.config.ts
export default defineConfig({
  outDir: "dist",  // Output to .addfox/dist/
});

Output Contents

JavaScript Files

  • All entry scripts bundled by Rsbuild
  • Code transformation and minification (production mode)
  • Source maps (development mode)

HTML Files

  • Generated by Rsbuild or custom templates
  • Entry scripts injected

CSS Files

  • Styles imported from entry scripts
  • Processed by PostCSS (if configured with Tailwind, etc.)

Manifest

  • Final generated manifest.json
  • Contains all entry paths and configuration

Static Assets

  • Files in public/ copied as-is
  • Extension icons, i18n files, etc.

Development vs Production

Development Mode (addfox dev)

  • Output to .addfox/extension/
  • Includes source maps
  • Code not minified
  • Browser loads directly from this directory

Production Mode (addfox build)

  • Also outputs to .addfox/extension/
  • Code minified and optimized
  • Can generate zip file (enabled by default)

Zip Packaging

After build, output is automatically packaged as zip:

.addfox
extension# Build output
extension.zip# Package file (for distribution)

Disable with zip: false:

export default defineConfig({
  zip: false,
});
  • outDir - Output directory name
  • zip - Zip packaging configuration