ssr
Version:
cli for react/vue2/vue3 ssr deploy on serverless or tradtional web server
29 lines • 1.08 kB
JavaScript
import { promises } from 'fs';
import { resolve } from 'path';
export const ssg = async (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 = res.html || res;
const fileName = `./build/client/${webpackChunkName}.html`;
await promises.writeFile(resolve(cwd, fileName), htmlStr);
logGreen(`Component ${path} be mapped to ${fileName}`);
}
};
//# sourceMappingURL=ssg.js.map