如何从Create React App为主页生成静态HTML



我有一个CRA,希望静态生成第一个页面,以提高加载时间和SEO。这个想法是运行一个NodeJS脚本,在index.html.中呈现应用程序文档

这是我的代码:

const { renderToString } = require("react-dom/server");
const App = require('./App');
const content = `<html><body>${renderToString(App)}</body></html>`
const fs = require('fs');
fs.writeFileSync('../public/index.html', content);

然而,我在使用NodeJS:运行它时遇到了问题

import React from 'react';
^^^^^^
SyntaxError: Cannot use import statement outside a module

显然,我必须构建源代码,但我不知道如何做到。我正在使用CRA来构建我的React文件(实际上,我正在使用重新布线的React应用程序,所以如果我知道如何做到这一点,我可以自定义构建过程(。

我该怎么做才能让它发挥作用?

错误来自节点:https://stackoverflow.com/a/59399717/13216797

我知道这不是你的问题。。。但是使用Nextjs呢?

即使没有节点环境,您也可以使用"next export"命令制作一个捆绑包,该捆绑包将像静态文件一样工作,同时仍在进行反应。。。

我最终使用了puppeteer,只保存了生成的客户端代码。在那之前,我花了几个小时,先是清理了window,然后是window.location,再是window.localStoragewindow.documentwindow.document.createElement,它从未结束。有了木偶师,这很容易。

最新更新