2.0.0 • Published 6 years ago
prerender-seo v2.0.0
prerender-seo
Prerender HTML files using Puppeteer.
Install
npm i prerender-seo -D
Usage
const path = require('path')
const prerender = require('prerender-seo')
const files = [
'/index.html'
]
prerender(
path.resolve(__dirname, './dist'),
files,
{
// options
}
)
Test
The test case use a vue-cli generated project
npm run test
Options
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 |
sourceDir
prerender(
path.resolve(__dirname, '../dist')
)
files
prerender(
files: [
'index.html',
'about.html',
'product.html'
]
)
options.destDir
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')
}
)
options.proxyTable
prerender(
path.resolve(__dirname, '../dist'),
files: [
'index.html',
'about.html',
'product.html'
],
{
proxyTable: {
context: '/api',
proxy: {
host: 'example.com',
port: '80',
protocol: 'http'
}
}
}
)
options.navigationTimeout
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
}
)
options.resourceInterception
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']
]
}
)