From a66539c7149a95ba63fe3302f8cd9261e3f211f9 Mon Sep 17 00:00:00 2001 From: Alec Larson <1925840+aleclarson@users.noreply.github.com> Date: Sun, 13 Apr 2025 17:56:22 -0400 Subject: [PATCH] feat: allow setting `alias: false` to disable default aliases --- packages/wxt/src/core/resolve-config.ts | 21 ++++++++++++--------- packages/wxt/src/types.ts | 4 +++- 2 files changed, 15 insertions(+), 10 deletions(-) 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. */