feat: Add ResolvedConfig.wxtModuleDir, resolving the directory once (#497)

This commit is contained in:
Aaron
2024-02-28 11:52:46 -06:00
committed by GitHub
parent f9b0aa45f8
commit 0bb2746869
7 changed files with 14 additions and 10 deletions
@@ -16,8 +16,8 @@ export function devHtmlPrerender(
): vite.PluginOption {
const htmlReloadId = '@wxt/reload-html';
const resolvedHtmlReloadId = resolve(
config.root,
'node_modules/wxt/dist/virtual/reload-html.js',
config.wxtModuleDir,
'dist/virtual/reload-html.js',
);
const virtualReactRefreshId = '@wxt/virtual-react-refresh';
const resolvedVirtualReactRefreshId = '\0' + virtualReactRefreshId;
@@ -30,10 +30,7 @@ export function virtualEntrypoint(
const inputPath = id.replace(resolvedVirtualId, '');
const template = await fs.readFile(
resolve(
config.root,
`node_modules/wxt/dist/virtual/${type}-entrypoint.js`,
),
resolve(config.wxtModuleDir, `dist/virtual/${type}-entrypoint.js`),
'utf-8',
);
return template.replace(`virtual:user-${type}`, inputPath);
@@ -26,8 +26,8 @@ export function webextensionPolyfillMock(
alias: {
// Alias to use a mocked version of the polyfill
'webextension-polyfill': path.resolve(
config.root,
'node_modules/wxt/dist/virtual/mock-browser',
config.wxtModuleDir,
'dist/virtual/mock-browser',
),
},
},
+2 -2
View File
@@ -52,8 +52,8 @@ export async function importEntrypointFile<T>(path: string): Promise<T> {
esmResolve: true,
alias: {
'webextension-polyfill': resolve(
wxt.config.root,
'node_modules/wxt/dist/virtual/mock-browser.js',
wxt.config.wxtModuleDir,
'dist/virtual/mock-browser.js',
),
},
// Continue using node to load TS files even if `bun run --bun` is detected. Jiti does not
@@ -71,6 +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 srcDir = path.resolve(root, mergedConfig.srcDir ?? root);
const entrypointsDir = path.resolve(
srcDir,
@@ -127,6 +128,7 @@ export async function resolveConfig(
outBaseDir,
outDir,
publicDir,
wxtModuleDir,
root,
runnerConfig,
srcDir,
+1
View File
@@ -262,6 +262,7 @@ export const fakeResolvedConfig = fakeObjectCreator<ResolvedConfig>(() => {
outDir: fakeDir(),
publicDir: fakeDir(),
root: fakeDir(),
wxtModuleDir: fakeDir(),
runnerConfig: {
config: {},
},
+4
View File
@@ -963,6 +963,10 @@ export interface ResolvedConfig {
outBaseDir: string;
outDir: string;
debug: boolean;
/**
* Directory pointing to `node_modules/wxt`, wherever WXT is installed.
*/
wxtModuleDir: string;
mode: string;
command: 'build' | 'serve';
browser: TargetBrowser;