From 45b7d7c67f0ddb1438392ac29e04953ee06dbb75 Mon Sep 17 00:00:00 2001 From: Aaron Date: Wed, 28 Feb 2024 12:25:04 -0600 Subject: [PATCH] fix: Resolve the path to `node_modules/wxt` correctly (#498) --- src/core/utils/building/resolve-config.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/core/utils/building/resolve-config.ts b/src/core/utils/building/resolve-config.ts index d78611ee..8e0e78c8 100644 --- a/src/core/utils/building/resolve-config.ts +++ b/src/core/utils/building/resolve-config.ts @@ -71,7 +71,7 @@ export async function resolveConfig( inlineConfig.root ?? userConfig.root ?? process.cwd(), ); const wxtDir = path.resolve(root, '.wxt'); - const wxtModuleDir = path.resolve(root, 'node_modules/wxt'); + const wxtModuleDir = await resolveWxtModuleDir(); const srcDir = path.resolve(root, mergedConfig.srcDir ?? root); const entrypointsDir = path.resolve( srcDir, @@ -324,3 +324,15 @@ async function getUnimportOptions( defaultOptions, ); } + +/** + * Returns the path to `node_modules/wxt`. + */ +async function resolveWxtModuleDir() { + const requireResolve = + require?.resolve ?? + (await import('node:module')).default.createRequire(import.meta.url) + .resolve; + // require.resolve returns the wxt/dist/index file, not the package's root directory, which we want to return + return path.resolve(requireResolve('wxt'), '../..'); +}