diff --git a/packages/wxt/src/core/resolve-config.ts b/packages/wxt/src/core/resolve-config.ts index 001884f90..6a727bb5a 100644 --- a/packages/wxt/src/core/resolve-config.ts +++ b/packages/wxt/src/core/resolve-config.ts @@ -137,15 +137,18 @@ export async function resolveConfig( defaults: userConfig.webExt ?? userConfig.runner, }); // Make sure alias are absolute - const alias = Object.fromEntries( - Object.entries({ - ...mergedConfig.alias, - '@': srcDir, - '~': srcDir, - '@@': root, - '~~': root, - }).map(([key, value]) => [key, path.resolve(root, value)]), - ); + const alias = + mergedConfig.alias !== false + ? Object.fromEntries( + Object.entries({ + ...mergedConfig.alias, + '@': srcDir, + '~': srcDir, + '@@': root, + '~~': root, + }).map(([key, value]) => [key, path.resolve(root, value)]), + ) + : {}; let devServerConfig: ResolvedConfig['dev']['server']; if (command === 'serve') { diff --git a/packages/wxt/src/types.ts b/packages/wxt/src/types.ts index b1ef253bd..c0666726c 100644 --- a/packages/wxt/src/types.ts +++ b/packages/wxt/src/types.ts @@ -312,12 +312,14 @@ export interface InlineConfig { * * The key is the import alias and the value is either a relative path to the root directory or an absolute path. * + * Set to `false` to disable aliases, including the default ones. This is useful if you want to handle aliases in your own plugin. Note that WXT modules can still add aliases. + * * @example * { * "testing": "src/utils/testing.ts" * } */ - alias?: Record; + alias?: Record | false; /** * Experimental settings - use with caution. */