将源码解析,生成路由对应的 html 页面

    1. const path = require("path");
    2. const fs = require("fs");
    3. const template = fs.readFileSync("dist/client/index.html", "utf-8");
    4. const { render } = require("./dist/server/server-entry");
    5. const routesToRender = fs.readdirSync("src/pages").map((file) => {
    6. return file.replace(".jsx", "").toLowerCase();
    7. });
    8. for (const route of routesToRender) {
    9. const context = {};
    10. // 渲染路由对应的 html
    11. const html = render(route, context);
    12. // 替换字符串为 html 模版
    13. const responseHtml = template.replace("<!-- APP_HTML -->", html);
    14. const filePath = `dist/static/${route}.html`;
    15. fs.writeFileSync(filePath, responseHtml);
    16. console.log(`prerender ${filePath}`);
    17. }