chore(ct): optional framework plugin factory (#22685)

This commit is contained in:
Sander 2023-04-28 05:26:02 +02:00 committed by GitHub
parent 7937699b28
commit 66edffff85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 4 deletions

View File

@ -47,7 +47,7 @@ const compiledReactRE = /(const|var)\s+React\s*=/;
export function createPlugin( export function createPlugin(
registerSourceFile: string, registerSourceFile: string,
frameworkPluginFactory: () => Promise<Plugin>): TestRunnerPlugin { frameworkPluginFactory?: () => Promise<Plugin>): TestRunnerPlugin {
let configDir: string; let configDir: string;
let config: FullConfig; let config: FullConfig;
return { return {
@ -127,9 +127,10 @@ export function createPlugin(
} }
const { build, preview } = require('vite'); const { build, preview } = require('vite');
// Build config unconditionally, either build or build & preview will use it. // Build config unconditionally, either build or build & preview will use it.
viteConfig.plugins = viteConfig.plugins || [ viteConfig.plugins ??= [];
await frameworkPluginFactory() if (frameworkPluginFactory && !viteConfig.plugins.length)
]; viteConfig.plugins = [await frameworkPluginFactory()];
// But only add out own plugin when we actually build / transform. // But only add out own plugin when we actually build / transform.
if (sourcesDirty) if (sourcesDirty)
viteConfig.plugins.push(vitePlugin(registerSource, relativeTemplateDir, buildInfo, componentRegistry)); viteConfig.plugins.push(vitePlugin(registerSource, relativeTemplateDir, buildInfo, componentRegistry));