From 66edffff85886d20bd41695e4d4092827d1d2531 Mon Sep 17 00:00:00 2001 From: Sander Date: Fri, 28 Apr 2023 05:26:02 +0200 Subject: [PATCH] chore(ct): optional framework plugin factory (#22685) --- packages/playwright-ct-core/src/vitePlugin.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/packages/playwright-ct-core/src/vitePlugin.ts b/packages/playwright-ct-core/src/vitePlugin.ts index b262439c59..ea4b940fd9 100644 --- a/packages/playwright-ct-core/src/vitePlugin.ts +++ b/packages/playwright-ct-core/src/vitePlugin.ts @@ -47,7 +47,7 @@ const compiledReactRE = /(const|var)\s+React\s*=/; export function createPlugin( registerSourceFile: string, - frameworkPluginFactory: () => Promise): TestRunnerPlugin { + frameworkPluginFactory?: () => Promise): 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));