Skip to content

Latest commit

 

History

History
18 lines (11 loc) · 1.11 KB

prerender-mini.md

File metadata and controls

18 lines (11 loc) · 1.11 KB

实现一个简版的 Prerender

这里我们首先要捋一下思路,我们需要哪些内容:

  1. 因为 page.goto(url) 方法要求 url 必须带有 http 协议。所以,我们需要一个 Server 模块,启动一个静态资源服务器。使用 http 协议的链接来访问我们需要预渲染的页面。
  2. 我们需要一个调用 Puppeteer 的模块,用来做预渲染的工作。这个模块需要接受一个 routes 参数,标识需要渲染的路由列表。
  3. 我们需要一个 Index 模块,来调度 ServicePuppeteer 模块。并且,对外提供 API。

我们先来实现最简单的 Service 模块。

Server 模块的实现

Server 模块仅仅是启动一个静态资源服务器,很容易实现。所以,我们需要想明白我们需要哪些必须要的参数。

  1. 静态文件的地址。这是必须参数,要不然还起什么静态资源服务器。

好像其他也不需要了。我们只要通过这个静态文件的地址,把服务跑起来就行。端口号可以先直接写死。

那让我们来实现这个极其简单的 Server 模块吧!