静态网站生成器,可让您使用您已知的 HTTP 服务器和框架。只需告诉 Staticgen 如何启动您的服务器,然后观察它抓取您的网站并生成包含所需所有页面和资源的静态版本。
如果您不熟悉,您实际上可以使用几十年前的 wget 命令从动态网站输出静态网站,该项目是为了相同的想法而专门构建的,让您的团队可以使用您正在使用的任何 HTTP 服务器和框架已经熟悉任何语言。
我还没有进行任何科学基准测试或比较,但以下是我的 2014 年 8 核 MBP 的一些结果:
通过 gobinaries.com:
$ curl -sf https://gobinaries.com/tj/staticgen/cmd/staticgen | sh配置存储在项目根目录中的./static.json文件中。可以使用以下选项:
"http://127.0.0.1:3000" 。"build" 。[] 。30 。 首先创建./static.json配置文件,例如这是 Go 服务器的配置,唯一需要的属性是command :
{
"command" : " go run main.go " ,
"concurrency" : 50 ,
"dir" : " dist "
}下面是 Node.js 服务器的示例,请注意, NODE_ENV已分配给生产环境,以便使用 Express 模板缓存等优化来提高服务性能。
{
"command" : " NODE_ENV=production node server.js "
}运行staticgen命令启动预渲染过程:
$ staticgen
Staticgen 执行您提供的command ,等待服务器在配置的url上可用。页面和资源将被复制到配置的dir ,然后您的服务器将关闭。
默认情况下,生成过程的超时时间为 15 分钟,根据您的情况,您可能需要使用-t, --timeout标志来增加或减少此超时时间,以下是一些示例:
$ staticgen -t 30s
$ staticgen -t 15m
$ staticgen -t 1h
启动command时,Staticgen 将STATICGEN环境变量设置为1 ,允许您在必要时更改行为。
要查看预渲染的站点,请运行以下命令来启动静态文件服务器并打开浏览器:
$ staticgen serve
有关完整示例,请参阅示例目录。
Staticgen 不会使用无头浏览器进行预渲染,这使得速度更快,但这意味着您不能依赖客户端 JavaScript 来操作页面。
该项目由 CTO.ai 赞助,使开发团队无需离开命令行即可轻松创建和共享工作流程自动化。
还有我的 GitHub 赞助商: