Prerender HTML files using Puppeteer.
npm i prerender-seo -D
const path = require('path')
const prerender = require('prerender-seo')
const files = [
'/index.html'
]
prerender(
path.resolve(__dirname, './dist'),
files,
{
// options
}
)
The test case use a vue-cli generated project
npm run test
Name | Type | Default | Description |
---|---|---|---|
sourceDir |
{String} |
- |
Source directory of static files |
files |
{Array} |
- |
HTML Files to prerender |
options.destDir |
{String} |
*_prerender |
Destination directory to store the result |
options.proxyTable |
{Array} |
[] |
Proxy to forward any http request that match the config |
options.navigationTimeout |
{Number} |
30000 |
Define the timeout of any navigation operations |
options.resourceInterception |
{Array} |
[] |
Define the regular expression of any resource will be aborted |
prerender(
path.resolve(__dirname, '../dist')
)
prerender(
files: [
'index.html',
'about.html',
'product.html'
]
)
Define the destination directory. If you want to replace the source directory, just set the same path as sourceDir
.
prerender(
path.resolve(__dirname, '../dist'),
files: [
'index.html',
'about.html',
'product.html'
],
{
destDir: path.resolve(__dirname, '../dist')
}
)
prerender(
path.resolve(__dirname, '../dist'),
files: [
'index.html',
'about.html',
'product.html'
],
{
proxyTable: {
context: '/api',
proxy: {
host: 'example.com',
port: '80',
protocol: 'http'
}
}
}
)
Define the timeout after which any navigation operations will stop trying. (in milli-secs)
prerender(
path.resolve(__dirname, '../dist'),
files: [
'index.html',
'about.html',
'product.html'
],
{
navigationTimeout: 60000
}
)
Define the regular expression to match any resource url will be aborted before request. The left hand in the array is RegExp
pattern, the right hand is RegExp
flag.
prerender(
path.resolve(__dirname, '../dist'),
files: [
'index.html',
'about.html',
'product.html'
],
{
resourceInterception: [
['hm.baidu.com', 'g'],
['/api/tokenAttach', 'g']
]
}
)