diff --git a/packages/vite/src/node/index.ts b/packages/vite/src/node/index.ts index 74df7d7cef277e..dd86f72168a3ad 100644 --- a/packages/vite/src/node/index.ts +++ b/packages/vite/src/node/index.ts @@ -15,8 +15,19 @@ export { optimizeDeps } from './optimizer' export { formatPostcssSourceMap, preprocessCSS } from './plugins/css' export { transformWithEsbuild } from './plugins/esbuild' export { buildErrorMessage } from './server/middlewares/error' -export { fetchModule } from './ssr/fetchModule' -export type { FetchModuleOptions } from './ssr/fetchModule' + +export { RemoteEnvironmentTransport } from './server/environmentTransport' +export { createNodeEnvironment } from './server/environments/nodeEnvironment' +export { + DevEnvironment, + type DevEnvironmentOptions, +} from './server/environment' +export { BuildEnvironment } from './build' + +export { fetchModule, type FetchModuleOptions } from './ssr/fetchModule' +export { createServerModuleRunner } from './ssr/runtime/serverModuleRunner' +export { ServerHMRConnector } from './ssr/runtime/serverHmrConnector' + export * from './publicUtils' // additional types @@ -118,7 +129,6 @@ export type { EnvironmentModuleNode, ResolvedUrl, } from './server/moduleGraph' -export { RemoteEnvironmentTransport } from './server/environmentTransport' export type { SendOptions } from './server/send' export type { ProxyOptions } from './server/middlewares/proxy' export type { @@ -135,9 +145,7 @@ export type { } from './server/hmr' export type { FetchFunction, FetchResult } from 'vite/module-runner' -export { createServerModuleRunner } from './ssr/runtime/serverModuleRunner' export type { ServerModuleRunnerOptions } from './ssr/runtime/serverModuleRunner' -export { ServerHMRConnector } from './ssr/runtime/serverHmrConnector' export type { BindCLIShortcutsOptions, CLIShortcut } from './shortcuts' diff --git a/packages/vite/src/node/server/environment.ts b/packages/vite/src/node/server/environment.ts index 60ef5d04ba20b8..b33e4f0b492960 100644 --- a/packages/vite/src/node/server/environment.ts +++ b/packages/vite/src/node/server/environment.ts @@ -15,6 +15,14 @@ import type { TransformResult } from './transformRequest' import { ERR_CLOSED_SERVER } from './pluginContainer' import type { RemoteEnvironmentTransport } from './environmentTransport' +export interface DevEnvironmentOptions { + hot?: false | HMRChannel + config?: DevEnvironmentConfig + runner?: FetchModuleOptions & { + transport?: RemoteEnvironmentTransport + } +} + // Maybe we will rename this to DevEnvironment export class DevEnvironment extends Environment { mode = 'dev' as const // TODO: should this be 'serve'? diff --git a/packages/vite/src/node/server/environments/ssrEnvironment.ts b/packages/vite/src/node/server/environments/nodeEnvironment.ts similarity index 76% rename from packages/vite/src/node/server/environments/ssrEnvironment.ts rename to packages/vite/src/node/server/environments/nodeEnvironment.ts index 3752fe54a7f651..ce507cebf01099 100644 --- a/packages/vite/src/node/server/environments/ssrEnvironment.ts +++ b/packages/vite/src/node/server/environments/nodeEnvironment.ts @@ -1,15 +1,15 @@ +import type { DevEnvironmentOptions } from '../environment'; import { DevEnvironment } from '../environment' -import type { ServerHMRChannel } from '../hmr' import type { ViteDevServer } from '../index' import { asyncFunctionDeclarationPaddingLineCount } from '../../../shared/utils' -export function createSsrEnvironment( +export function createNodeEnvironment( server: ViteDevServer, name: string, - hotChannel: ServerHMRChannel, + options?: DevEnvironmentOptions, ): DevEnvironment { return new DevEnvironment(server, name, { - hot: hotChannel, + ...options, runner: { processSourceMap(map) { // this assumes that "new AsyncFunction" is used to create the module @@ -18,6 +18,7 @@ export function createSsrEnvironment( ';'.repeat(asyncFunctionDeclarationPaddingLineCount) + map.mappings, }) }, + ...options?.runner, }, }) } diff --git a/packages/vite/src/node/server/index.ts b/packages/vite/src/node/server/index.ts index dde4f054945039..233fa4a087d541 100644 --- a/packages/vite/src/node/server/index.ts +++ b/packages/vite/src/node/server/index.ts @@ -91,7 +91,7 @@ import { transformRequest } from './transformRequest' import { searchForWorkspaceRoot } from './searchRoot' import { warmupFiles } from './warmup' import { DevEnvironment } from './environment' -import { createSsrEnvironment } from './environments/ssrEnvironment' +import { createNodeEnvironment } from './environments/nodeEnvironment' export interface ServerOptions extends CommonServerOptions { /** @@ -775,7 +775,7 @@ export async function _createServer( const ssr_createEnvironment = config.environments.ssr?.dev?.createEnvironment ?? ((server: ViteDevServer, name: string) => - createSsrEnvironment(server, name, ssrHotChannel)) + createNodeEnvironment(server, name, { hot: ssrHotChannel })) environments.ssr = ssr_createEnvironment(server, 'ssr')