diff --git a/packages/start/src/config/dev-server.ts b/packages/start/src/config/dev-server.ts index d88a8cb0d..44705f06b 100644 --- a/packages/start/src/config/dev-server.ts +++ b/packages/start/src/config/dev-server.ts @@ -54,7 +54,7 @@ export function devServer(): Array { try { const serverEntry: { default: { fetch: (req: Request) => Promise }; - } = await serverEnv.runner.import("./src/entry-server.tsx"); + } = await serverEnv.runner.import(START_HANDLERS.server); const webRes = await serverEntry.default.fetch(webReq); diff --git a/packages/start/src/config/index.ts b/packages/start/src/config/index.ts index b8cf5bf58..26033d704 100644 --- a/packages/start/src/config/index.ts +++ b/packages/start/src/config/index.ts @@ -57,7 +57,7 @@ export function solidStart(options?: SolidStartOptions): Array { throw new Error(`Could not find an app jsx/tsx entry in ${start.appRoot}.`); } const entryExtension = extname(appEntryPath); - const handlers = { + globalThis.START_HANDLERS = { client: `${start.appRoot}/entry-client${entryExtension}`, server: `${start.appRoot}/entry-server${entryExtension}`, }; @@ -74,7 +74,7 @@ export function solidStart(options?: SolidStartOptions): Array { }; }, async config(_, env) { - const clientInput = [handlers.client]; + const clientInput = [START_HANDLERS.client]; if (env.command === "build") { const clientRouter: BaseFileSystemRouter = (globalThis as any).ROUTERS.client; for (const route of await clientRouter.getRoutes()) { @@ -113,7 +113,7 @@ export function solidStart(options?: SolidStartOptions): Array { manifest: true, copyPublicDir: false, rollupOptions: { - input: "~/entry-server.tsx", + input: `~/entry-server${entryExtension}`, }, outDir: "dist/server", commonjsOptions: { @@ -124,7 +124,7 @@ export function solidStart(options?: SolidStartOptions): Array { }, resolve: { alias: { - "@solidjs/start/server/entry": handlers.server, + "@solidjs/start/server/entry": START_HANDLERS.server, "~": join(process.cwd(), start.appRoot), ...(!start.ssr ? { @@ -140,7 +140,7 @@ export function solidStart(options?: SolidStartOptions): Array { // Use JSON.stringify so backslashes on Windows are escaped and // esbuild receives a valid JS string literal for the define value "import.meta.env.START_APP_ENTRY": JSON.stringify(appEntryPath), - "import.meta.env.START_CLIENT_ENTRY": JSON.stringify(handlers.client), + "import.meta.env.START_CLIENT_ENTRY": JSON.stringify(START_HANDLERS.client), "import.meta.env.START_DEV_OVERLAY": JSON.stringify(start.devOverlay), "import.meta.env.SEROVAL_MODE": JSON.stringify(start.serialization?.mode || "json"), }, @@ -217,8 +217,8 @@ export function solidStart(options?: SolidStartOptions): Array { const { filename, query } = parseIdQuery(id); let base; - if (filename === VIRTUAL_MODULES.clientEntry) base = handlers.client; - if (filename === VIRTUAL_MODULES.serverEntry) base = handlers.server; + if (filename === VIRTUAL_MODULES.clientEntry) base = START_HANDLERS.client; + if (filename === VIRTUAL_MODULES.serverEntry) base = START_HANDLERS.server; if (filename === VIRTUAL_MODULES.app) base = appEntryPath; if (base) { diff --git a/packages/start/src/internal.d.ts b/packages/start/src/internal.d.ts index dd4ef0e40..1a955070e 100644 --- a/packages/start/src/internal.d.ts +++ b/packages/start/src/internal.d.ts @@ -11,4 +11,8 @@ import type { Rollup } from "vite"; declare global { var START_CLIENT_BUNDLE: Rollup.OutputBundle; var USING_SOLID_START_DEV_SERVER: boolean | undefined; + var START_HANDLERS: { + client: string; + server: string; + }; }