const express = require("express"); const {renderPage} = require("vite-plugin-ssr"); const isProduction = process.env.NODE_ENV === "production"; const root = `${__dirname}/..`; startServer(); async function startServer() { const app = express(); if (isProduction) { app.use(express.static(`${root}/client`)); } else { const vite = require("vite"); const viteDevServer = await vite.createServer({ root, server: { middlewareMode: true, }, }); app.use(viteDevServer.middlewares); } app.get("*", async (req, res, next) => { const pageContextInit = {urlOriginal: req.originalUrl}; const pageContext = await renderPage(pageContextInit); if (pageContext.httpResponse === null) return next(); const {body, statusCode, contentType} = pageContext.httpResponse; res.status(statusCode).type(contentType).send(body); }); const port = 5173; app.listen(port); console.log(`Server running at http://localhost:${port}`); }