归档.zip
修改 package.json 脚本
"scripts": {"dev": "vite","build": "npm run build:client && npm run build:server","build:client": "vite build --outDir dist/client","build:server": "vite build --outDir dist/server --ssr src/server-entry.jsx","serve": "vite preview"},
执行 npm run buid , 打包出两份文件
修改 server.js , 作为生产环境使用
const express = require("express");const fs = require("fs");const app = express();app.use(express.static("dist/client")); // 静态资源目录映射// 获取 html 模版const template = fs.readFileSync("dist/client/index.html", "utf-8");app.get("*", async (req, res) => {// 获取渲染函数const { render } = require("./dist/server/server-entry");const context = {};// 渲染路由对应的 htmlconst html = await render(req.url, context);if (context.url) {// 如果有此路由,重定向此路由即可res.redirect(301, context.url);return;}// 替换字符串为 html 模版const responseHtml = template.replace("<!-- APP_HTML -->", html);res.set("content-type", "text/html").send(responseHtml);});app.listen(4000);
- 启动
node server.js
