prerender() 程序化

有关什么是预渲染以及如何启用它,请参阅 指南 > 预渲染 (SSG)

运行 $ vite build 时会自动启动预渲染。 (如果 开启了预渲染。)

相反,我们可以以编程方式启动预渲染:

// vite.config.js

import { ssr } from 'vite-plugin-ssr/plugin'

export default {
	plugins: [
		ssr({
			prerender: {
				// 停止 `$ vite build` 启动预渲染
				disableAutoRun: true,
			},
		}),
	],
}
// my-custom-build-script.js

import { prerender } from 'vite-plugin-ssr/prerender'

// 不带选项
prerender()

// 所有选项都是可选的
prerender({
	pageContextInit,
	viteConfig,
	onPagePrerender,
})

pageContextInit

每个页面的 pageContext 对象的初始值

prerender({
	pageContextInit: {
		someData: 42,
		// ...
	},
})

viteConfig

Vite 配置

它是可选的:如果省略,Vite 会自动加载我们的 vite.config.js

我们建议忽略此选项或将其设置为 prerender({ viteConfig: { root }}):将加载位于 rootvite.config.js 文件。

或者你可以:

  • 设置:
    prerender({
    	viteConfig: {
    		configFile: require.resolve('./path/to/vite.config.js'),
    	},
    })
  • 不加载任何 vite.config.js 文件,而是使用 prerender({ viteConfig: { configFile: false, ...myViteConfig }}) 以编程方式定义整个 Vite 配置

请参考 Vite > JavaScript API > InlineConfig.

onPagePrerender()

⚠ 不要在没有联系 vite-plugin-ssr 维护者的情况下使用这个选项:如果你不这样做,这个功能可能会在任何时候被完全改变/删除。
⚠ 此功能是实验性的,可能会在任何次要版本更新中更改。

onPagePrerender 选项允许我们覆盖 HTML 的写入位置。

prerender({
	// 如果我们提供 `onPagePrerender` 则 vite-plugin-ssr 不会将 HTML 写入文件系统
	onPagePrerender(pageContext) {
		// TODO: 将 HTML 写入文件系统
		// ...
	},
})

更多配置

有关更多配置,请参阅 API > prerender 配置 的全局配置