diff --git a/packages/kit/src/exports/vite/index.js b/packages/kit/src/exports/vite/index.js index f46915e1068e..2cafd83df3e7 100644 --- a/packages/kit/src/exports/vite/index.js +++ b/packages/kit/src/exports/vite/index.js @@ -1,12 +1,13 @@ /** @import { EnvVarConfig } from '@sveltejs/kit/env' */ /** @import { Options } from '@sveltejs/vite-plugin-svelte' */ /** @import { PreprocessorGroup } from 'svelte/compiler' */ -/** @import { ManifestData, RemoteChunk, ServerMetadata, ValidatedConfig } from 'types' */ +/** @import { ManifestData, RemoteChunk, ServerMetadata, ValidatedConfig } from 'types' */ /** @import { CorsOptions, Plugin, ResolvedConfig, Rolldown, UserConfig } from 'vite' */ import fs from 'node:fs'; import path from 'node:path'; import process from 'node:process'; import { styleText } from 'node:util'; +import * as vite from 'vite'; import { resolve_entry } from '../../utils/filesystem.js'; import { posixify } from '../../utils/os.js'; @@ -237,9 +238,6 @@ function resolve_root(vite_config) { * @return {Plugin[]} */ function kit({ svelte_config }) { - /** @type {typeof import('vite')} */ - let vite; - /** * The posix-ified root of the project based on the Vite configuration. * @type {string} @@ -330,7 +328,7 @@ function kit({ svelte_config }) { */ config: { order: 'pre', - async handler(config, config_env) { + handler(config, config_env) { initial_config = config; is_build = config_env.command === 'build'; @@ -344,8 +342,6 @@ function kit({ svelte_config }) { service_worker_entry_file = resolve_entry(kit.files.serviceWorker); service_worker_entry_file &&= posixify(service_worker_entry_file); - vite = await import_peer('vite', root); - normalized_aliases = get_import_aliases(root, vite.normalizePath.bind(vite)); // Add `#`-prefixed import keys to the enforced config so users are warned @@ -645,10 +641,7 @@ function kit({ svelte_config }) { plugin_remote_guard(svelte_config), plugin_remote( svelte_config, - () => ({ - root, - vite - }), + () => ({ root, vite }), () => build_metadata, (metadata) => { remote_metadata = metadata; diff --git a/packages/kit/src/runner.js b/packages/kit/src/runner.js index 6c8791594de6..e166f9d7205f 100644 --- a/packages/kit/src/runner.js +++ b/packages/kit/src/runner.js @@ -1,13 +1,14 @@ +/** @import * as vite from 'vite' */ /** @import { ViteDevServer } from 'vite' */ /** - * @param {typeof import('vite')} vite the peer resolved vite module + * @param {typeof vite} vite the vite module that created the server * @param {ViteDevServer} server */ -export function get_runner(vite, server) { +export function get_runner({ isRunnableDevEnvironment }, server) { // `isRunnableDevEnvironment` does an `instanceof` check and will fail if // we're using different instances of Vite - if (!vite.isRunnableDevEnvironment(server.environments.ssr)) { + if (!isRunnableDevEnvironment(server.environments.ssr)) { throw new Error('The configured Vite SSR environment must be a RunnableDevEnvironment'); } diff --git a/packages/kit/types/index.d.ts b/packages/kit/types/index.d.ts index 6ad1b0c12309..cb4982e739d2 100644 --- a/packages/kit/types/index.d.ts +++ b/packages/kit/types/index.d.ts @@ -1556,7 +1556,7 @@ declare module '@sveltejs/kit/params' { declare module '@sveltejs/kit/vite' { import type { Adapter } from '@sveltejs/kit'; import type { Options } from '@sveltejs/vite-plugin-svelte'; - import type { Plugin } from 'vite'; + import * as vite from 'vite'; // this indirection helps make the docs look pretty type VitePluginSvelteOptions = Omit; type VitePluginSvelteOptionsExperimental = Options['experimental'];