0.1.1 • Published 2 years ago

static-site-webpack-plugin v0.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

StaticSitePlugin

npm NPM npm type definitions npm GitHub Repo stars

A generic, modern webpack plugin to generate static websites, inspired by static-site-generator-webpack-plugin.

This plugin exposes a very basic API to declare routes and render them into HTML. It integrates with your webpack rules, so things like babel, typescript and JSX can be used seamlessly.

Because this plugin is extremely generic, it's possible with little boilerplate to integrate React, Vue, Handlebars or any other framework/templating engine of your choice.

Install

npm:

npm install --save-dev static-site-webpack-plugin

yarn:

yarn add -D static-site-webpack-plugin

pnpm:

pnpm add -D static-site-webpack-plugin

Usage

StaticSitePlugin will load two functions, render and routes, through webpack, and use these to output the static website.

webpack.config.js

'use strict';

const path = require('path');
const StaticSitePlugin = require('static-site-webpack-plugin');

module.exports = {
  mode: 'development',
  entry: {
    app: './app.js'
  },
  output: {
    path: path.join(__dirname, 'dist'),
    filename: '[name].js'
  },
  plugins: [
    new StaticSitePlugin({
      entry: './static.js'
    })
  ]
};

Unlike static-site-generator-webpack-plugin, you're not forced to export CommonJS/UMD and/or to target node.

static.js

'use strict';

const routes = () => ["/", "/about"];
const render = (path) => `<html><body>Hello from ${path}</body><html>`;

module.exports = { routes, render };

Note that render can also return a promise.

Options


entry
string, required

The static entrypoint.


prettyFilenames
boolean | "auto"

When false, /foo will generate foo/index.html.
When true, /foo will generate foo.html.
When "auto", it will be determined based on the rpesence of a trailing slash.

Defaults to false.


ext
string

The extenstion of the generated files.

Defaults to "html".


Similar Projects

License

StaticSitePlugin is available under the MIT License.

Author

This plugin was made by Maxime Bacoux "Nax".