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