Interface: InlineConfig 
Contents 
Properties 
alias 
alias?:
Record<string,string>
Add additional paths to the .wxt/tsconfig.json. Use this instead of overwriting the paths in the root tsconfig.json if you want to add new paths.
The key is the import alias and the value is either a relative path to the root directory or an absolute path.
Example 
{
   *   "testing": "src/utils/testing.ts"
   * }Source 
analysis 
analysis?:
object
Type declaration 
enabled 
enabled?:
boolean
Explicitly include bundle analysis when running wxt build. This can be overridden by the command line --analyze option.
Default 
falsekeepArtifacts 
keepArtifacts?:
boolean
By default, the stats-*.json artifacts generated during bundle analysis are deleted. Set to true to keep them.
One stats file is output per build step.
Default 
falseopen 
open?:
boolean
Set to true to automatically open the stats.html file when the build is finished. When building in CI, the browser will never open.
Default 
falseoutputFile 
outputFile?:
string
Name of the output HTML file. Relative to the project's root directory.
Changing the filename of the outputFile also effects the names of the artifacts generated when setting keepArtifacts to true:
- "stats.html" => "stats-*.json"
- "stats/bundle.html" => "bundle-*.json"
- ".analysis/index.html" => "index-*.json"
Default 
"stats.html"template 
template?:
TemplateType
When running wxt build --analyze or setting analysis.enabled to true, customize how the bundle will be visualized. See rollup-plugin-visualizer for more details.
Default 
"treemap"Source 
browser 
browser?:
string
Explicitly set a browser to build for. This will override the default browser for each command, and can be overridden by the command line --browser option.
Default 
"chrome"Source 
configFile 
configFile?:
string|false
Only available when using the JS API. Not available in
wxt.config.tsfiles
Path to wxt.config.ts file or false to disable config file discovery.
Default 
"wxt.config.ts"Source 
debug 
debug?:
boolean
Set to true to show debug logs. Overridden by the command line --debug option.
Default 
falseSource 
dev 
dev?:
object
Config effecting dev mode only.
Type declaration 
reloadCommand 
reloadCommand?:
string|false
Controls whether a custom keyboard shortcut command, Alt+R, is added during dev mode to quickly reload the extension.
If false, the shortcut is not added during development.
If set to a custom string, you can override the key combo used. See Chrome's command docs for available options.
Default 
"Alt+R"server 
server?:
object
server.host 
server.host?:
string
Host to bind the dev server to.
Default 
"localhost"server.hostname 
server.hostname?:
string
Hostname to run the dev server on.
Deprecated 
use host to specify the interface to bind to, or use origin to specify the dev server hostname.
server.origin 
server.origin?:
string
Origin to use to connect from the extension ui runtime to the dev server.
Default 
"http://localhost:3000"server.port 
server.port?:
number
Port to run the dev server on. Defaults to the first open port from 3000 to 3010.
Source 
entrypointsDir 
entrypointsDir?:
string
Default 
"${config.srcDir}/entrypoints"Source 
experimental 
experimental?:
object
Experimental settings - use with caution.
Source 
filterEntrypoints 
filterEntrypoints?:
string[]
A list of entrypoint names ("popup", "options", etc.) to build. Will speed up the build if your extension has lots of entrypoints, and you don't need to build all of them to develop a feature. If specified, this completely overrides the include/exclude option provided per-entrypoint.
Source 
hooks 
hooks?:
NestedHooks<WxtHooks>
Project hooks for running logic during the build process.
Source 
imports 
imports?:
false|WxtUnimportOptions
Customize auto-import options. Set to false to disable auto-imports.
For example, to add a directory to auto-import from, you can use:
export default defineConfig({
  imports: {
    dirs: ["some-directory"]
  }
})Source 
logger 
logger?:
Logger
Override the logger used.
Default 
consolaSource 
manifest 
manifest?:
UserManifest|Promise<UserManifest> |UserManifestFn
Customize the manifest.json output. Can be an object, promise, or function that returns an object or promise.
Source 
manifestVersion 
manifestVersion?:
TargetManifestVersion
Explicitly set a manifest version to target. This will override the default manifest version for each command, and can be overridden by the command line --mv2 or --mv3 option.
Source 
mode 
mode?:
string
Explicitly set a mode to run in. This will override the default mode for each command, and can be overridden by the command line --mode option.
Source 
modules 
modules?:
string[]
List of WXT module names to include. Can be the full package name ("wxt-module-analytics"), or just the suffix ("analytics" would resolve to "wxt-module-analytics").
Source 
modulesDir 
modulesDir?:
string
Default 
"${config.root}/modules"Source 
outDir 
outDir?:
string
Output directory that stored build folders and ZIPs.
Default 
".output"Source 
outDirTemplate 
outDirTemplate?:
string
Template string for customizing the output directory structure. Available variables:
- {{browser}}: The target browser (e.g., 'chrome', 'firefox')
- {{manifestVersion}}: The manifest version (e.g., 2 or 3)
- {{mode}}: The build mode (e.g., 'development', 'production')
- {{modeSuffix}}: A suffix based on the mode ('-dev' for development, '' for production)
- {{command}}: The WXT command being run (e.g., 'build', 'serve')
Example 
"{{browser}}-mv{{manifestVersion}}"Default 
"{{browser}}-mv{{manifestVersion}}{{modeSuffix}}"
Source 
publicDir 
publicDir?:
string
Directory containing files that will be copied to the output directory as-is.
Default 
"${config.root}/public"Source 
root 
root?:
string
Your project's root directory containing the package.json used to fill out the manifest.json.
Default 
process.cwd()Source 
runner 
runner?:
WebExtConfig
Deprecated 
Use webExt instead. Same option, just renamed.
Source 
srcDir 
srcDir?:
string
Directory containing all source code. Set to "src" to move all source code to a src/ directory.
After changing, don't forget to move the public/ and entrypoints/ directories into the new source dir.
Default 
config.rootSource 
targetBrowsers 
targetBrowsers?:
string[]
Target browsers to support. When set, import.meta.env.BROWSER will be narrowed to a string literal type containing only the specified browser names.
Default 
[]Source 
vite 
vite?: (
env) =>WxtViteConfig|Promise<WxtViteConfig>
Return custom Vite options from a function. See <https://vitejs.dev/config/shared-options.html> .
root, configFile, and mode should be set in WXT's config instead of Vite's.
This is a function because any vite plugins added need to be recreated for each individual build step, incase they have internal state causing them to fail when reused.
Parameters 
▪ env: ConfigEnv
Source 
webExt 
webExt?:
WebExtConfig
Configure browser startup. Options set here can be overridden in a web-ext.config.ts file.
Source 
zip 
zip?:
object
Type declaration 
artifactTemplate 
artifactTemplate?:
string
Configure the filename output when zipping files.
Available template variables:
- {{name}}- The project's name converted to kebab-case
- {{version}}- The version_name or version from the manifest
- {{packageVersion}}- The version from the package.json
- {{browser}}- The target browser from the- --browserCLI flag
- {{mode}}- The current mode
- {{manifestVersion}}- Either "2" or "3"
Default 
"{{name}}-{{version}}-{{browser}}.zip"compressionLevel 
compressionLevel?:
0|1|2|3|4|5|6|7|8|9
Compression level to use when zipping files.
Levels: 0 (no compression) to 9 (maximum compression).
Default 
9downloadPackages 
downloadPackages?:
string[]
The Firefox review process requires the extension be buildable from source to make reviewing easier. This field allows you to use private packages without exposing your auth tokens.
Just list the name of all the packages you want to download and include in the sources zip. Usually, these will be private packages behind auth tokens, but they don't have to be.
All packages listed here will be downloaded to in .wxt/local_modules/ and an overrides or resolutions field (depending on your package manager) will be added to the package.json, pointing to the downloaded packages.
DO NOT include versions or version filters. Just the package name. If multiple versions of a package are present in the project, all versions will be downloaded and referenced in the package.json correctly.
Default 
[]Example 
// Correct:
["@scope/package-name", "package-name"]
// Incorrect, don't include versions!!!
["@scope/package-name@1.1.3", "package-name@^2"]exclude 
exclude?:
string[]
Minimatch patterns of files to exclude when zipping the extension.
Example 
[
  "**/*.map", // Exclude all sourcemaps
]excludeSources 
excludeSources?:
string[]
Minimatch patterns of files to exclude when creating a ZIP of all your source code for Firefox. Patterns are relative to your config.zip.sourcesRoot.
Hidden files, node_modules, and tests are ignored by default.
Example 
[
  "coverage", // Include the coverage directory in the `sourcesRoot`
]includeSources 
includeSources?:
string[]
Minimatch patterns of files to include when creating a ZIP of all your source code for Firefox. Patterns are relative to your config.zip.sourcesRoot.
This setting overrides excludeSources. So if a file matches both lists, it is included in the ZIP.
Example 
[
  "coverage", // Ignore the coverage directory in the `sourcesRoot`
]name 
name?:
string
Override the artifactTemplate's {name} template variable. Defaults to the package.json's name, or if that doesn't exist, the current working directories name.
sourcesRoot 
sourcesRoot?:
string
Root directory to ZIP when generating the sources ZIP.
Default 
config.rootsourcesTemplate 
sourcesTemplate?:
string
Configure the filename output when zipping files.
Available template variables:
- {{name}}- The project's name converted to kebab-case
- {{version}}- The version_name or version from the manifest
- {{packageVersion}}- The version from the package.json
- {{browser}}- The target browser from the- --browserCLI flag
- {{mode}}- The current mode
- {{manifestVersion}}- Either "2" or "3"
Default 
"{{name}}-{{version}}-sources.zip"zipSources 
zipSources?:
boolean
When zipping the extension, also zip sources.
- undefined: zip sources if the target browser is "firefox" or "opera"
- true: always zip sources
- false: never zip sources
Default 
undefinedSource 
Generated using typedoc-plugin-markdown and TypeDoc