From ccf618d0d1b1304bc41b9bfcdc8aa57cf3a1ef1e Mon Sep 17 00:00:00 2001 From: Vladimir Sheremet Date: Fri, 8 Sep 2023 12:14:32 +0300 Subject: [PATCH] chore: cleanup --- packages/vitest/src/node/create.ts | 16 +++------------- packages/vitest/src/node/vite.ts | 21 +++++++++++++++++++++ packages/vitest/src/node/workspace.ts | 4 ++-- 3 files changed, 26 insertions(+), 15 deletions(-) create mode 100644 packages/vitest/src/node/vite.ts diff --git a/packages/vitest/src/node/create.ts b/packages/vitest/src/node/create.ts index be82d23f365e..82a8f8f62d81 100644 --- a/packages/vitest/src/node/create.ts +++ b/packages/vitest/src/node/create.ts @@ -1,11 +1,12 @@ import { resolve } from 'pathe' -import { createServer, mergeConfig } from 'vite' +import { mergeConfig } from 'vite' import type { InlineConfig as ViteInlineConfig, UserConfig as ViteUserConfig } from 'vite' import { findUp } from 'find-up' import type { UserConfig, VitestRunMode } from '../types' import { configFiles } from '../constants' import { Vitest } from './core' import { VitestPlugin } from './plugins' +import { createViteServer } from './vite' export async function createVitest(mode: VitestRunMode, options: UserConfig, viteOverrides: ViteUserConfig = {}) { const ctx = new Vitest(mode) @@ -27,21 +28,10 @@ export async function createVitest(mode: VitestRunMode, options: UserConfig, vit plugins: await VitestPlugin(options, ctx), } - // Vite prints an error (https://github.com/vitejs/vite/issues/14328) - // But Vitest works correctly either way - const error = console.error - console.error = (...args: any[]) => { - if (typeof args[0] === 'string' && args[0].includes('WebSocket server error:')) - return - error(...args) - } - - const server = await createServer(mergeConfig(config, mergeConfig(viteOverrides, { root: options.root }))) + const server = await createViteServer(mergeConfig(config, mergeConfig(viteOverrides, { root: options.root }))) if (ctx.config.api?.port) await server.listen() - console.error = error - return ctx } diff --git a/packages/vitest/src/node/vite.ts b/packages/vitest/src/node/vite.ts new file mode 100644 index 000000000000..4138d3b1fc8b --- /dev/null +++ b/packages/vitest/src/node/vite.ts @@ -0,0 +1,21 @@ +import type { InlineConfig } from 'vite' +import { createServer } from 'vite' + +export async function createViteServer(inlineConfig: InlineConfig) { + // Vite prints an error (https://github.com/vitejs/vite/issues/14328) + // But Vitest works correctly either way + const error = console.error + console.error = (...args: any[]) => { + if (typeof args[0] === 'string' && args[0].includes('WebSocket server error:')) + return + error(...args) + } + + const server = await createServer({ + logLevel: 'error', + ...inlineConfig, + }) + + console.error = error + return server +} diff --git a/packages/vitest/src/node/workspace.ts b/packages/vitest/src/node/workspace.ts index 9348d393a658..02a3ce48d4e4 100644 --- a/packages/vitest/src/node/workspace.ts +++ b/packages/vitest/src/node/workspace.ts @@ -2,7 +2,6 @@ import { promises as fs } from 'node:fs' import fg from 'fast-glob' import mm from 'micromatch' import { dirname, relative, resolve, toNamespacedPath } from 'pathe' -import { createServer } from 'vite' import type { ViteDevServer, InlineConfig as ViteInlineConfig } from 'vite' import { ViteNodeRunner } from 'vite-node/client' import { ViteNodeServer } from 'vite-node/server' @@ -14,6 +13,7 @@ import type { BrowserProvider } from '../types/browser' import { getBrowserProvider } from '../integrations/browser' import { isBrowserEnabled, resolveConfig } from './config' import { WorkspaceVitestPlugin } from './plugins/workspace' +import { createViteServer } from './vite' interface InitializeProjectOptions extends UserWorkspaceConfig { workspaceConfigPath: string @@ -44,7 +44,7 @@ export async function initializeProject(workspacePath: string | number, ctx: Vit ], } - await createServer(config) + await createViteServer(config) return project }