spank

2.2.4 • Public • Published
spank

Static Site Generator (SSG)

Exports HTML pages from your SPA

Usage

//spank.config.js
module.exports = {
  sitemap: 'path/to/a-list-of-urls.json',
  template: 'dist/__index.html',
  script: 'dist/main.js',
  outputDir: 'dist'
}

open your terminal and type

npx spank
Note

spank can also be used without a config. Use npx spank --help for parameters.


Config options

prop default description
sitemap array of paths. Eg. ['/', '/about', '/contact']. Can also be a path to a .js file exporting an array of paths. Eg. ./sitemap.js
template dist/__app.html path to the HTML template to render the SPA in. Often static/index.html
script dist/build/bundle.js Path to the app script. Often dist/build/bundle.js or dist/build/main.js
outputDir dist Folder to save HTML files to.
forceIndex false Write /about to about/index.html instead of about.html
inlineDynamicImports false Required if app uses dynamic imports
concurrently 3 Max simultaneous running jobs
eventName If specified, HTMLs aren't saved till the page has emitted the event.
host http://jsdom.ssr Simulated host
blacklist [] List of paths to be ignored. Regular expressions are supported when using spank.config.js
depth 2 How far to crawl any path in the sitemap
ssrOptions {} Options to be passed to tossr
transform (html, url) => html Callback for transforming HTML

How does it work?

For each path in the sitemap, Spank creates a corresponding SPA in a simulated browser. Spank will crawl pages in the sitemap as far as depth is set. The HTML for each page is then saved to the output folder.


routify

Readme

Keywords

none

Package Sidebar

Install

npm i spank

Weekly Downloads

395

Version

2.2.4

License

MIT

Unpacked Size

190 kB

Total Files

61

Last publish

Collaborators

  • jakobrosenberg