UNPKG

ssr

Version:

cli for react/vue2/vue3 ssr deploy on serverless or tradtional web server

31 lines (29 loc) 952 B
import { promises } from 'fs' import { resolve } from 'path' import type { Argv } from 'ssr-types' export const ssg = async (argv: Argv) => { if (!argv.ssg) { return } const { loadConfig, getCwd, logGreen } = await import('ssr-common-utils') const config = loadConfig() const { chunkName } = config const cwd = getCwd() const serverFile = resolve(cwd, `./build/server/${chunkName}.server.js`) const { Routes, serverRender } = require(serverFile) for (const item of Routes.FeRoutes) { const { path, webpackChunkName } = item const mockCtx = { request: { path: path, url: path }, desc: "It's a mock context" } const res = await serverRender(mockCtx, Object.assign(config, { stream: false })) const htmlStr: string = res.html || res const fileName = `./build/client/${webpackChunkName}.html` await promises.writeFile(resolve(cwd, fileName), htmlStr) logGreen(`Component ${path} be mapped to ${fileName}`) } }