6.2.1 • Published 6 years ago

simple-prerender-webpack-plugin v6.2.1

Weekly downloads
39
License
MIT
Repository
github
Last release
6 years ago

simple-prerender-webpack-plugin

version

Features

  • Based on Promise
  • Support dynamic import
  • Sourcemap: to enable sourcemap just configure webpack with devtool: source-map
  • Inject rendering result into html-webpack-plugin as htmlWebpackPlugin.options.prerendered

Install

$ npm install webpack html-webpack-plugin@next
$ npm install simple-prerender-webpack-plugin

Examples

Usage

webpack.config.js:

const SimplePrerenderWebpackPlugin = require('simple-prerender-webpack-plugin')
const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
  entry: './src/index.js',

  plugins: [
    new HtmlWebpackPlugin({
      filename: 'page1.html',
      template: './src/template.ejs',
    }),
    new HtmlWebpackPlugin({
      filename: 'page2.html',
      template: './src/template.ejs',
    }),
    new SimplePrerenderWebpackPlugin({
      // (optional) path to file which exports a prerender function
      // <string|string[]>
      // defaults to './src/index.js'
      entry: './src/ssr.js',

      // (optional)
      // <string>: path to partial webpack config
      // <object>: partial webpack config
      config: {
        plugins: [],
        externals: [],
        entry: './src/ssr.js',
        module: {},
      },

      // (optional): <string> filename of output
      filename: 'prerender.js',

      // (optional): <string>
      chunkFilename: 'prerender.[id].js',

      // (optional): <any>, see `examples/multi-instance`
      id: '',

      // (optional): <boolean> whether write output to disk
      writeToDisk: false,

      // (optional): <object> opts passed to webpack-node-externals
      // see also https://www.npmjs.com/package/webpack-node-externals
      nodeExternalsOptions: {},
    }),
  ],
}

./src/template.ejs:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
  <title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body><div id="root"><%= htmlWebpackPlugin.options.prerendered %></div>
</body>
</html>

./src/ssr.js:

export default ({
  outputName, // html filename
  plugin, // html-webpack-plugin instance
  assets, // html-webpack-plugin assets
  compilation,
  compiler,
}) => {
  return `<div>${outputName}</div>`
}

LICENSE

MIT

6.2.1

6 years ago

6.2.0

6 years ago

6.1.0

6 years ago

6.0.3

6 years ago

6.0.2

6 years ago

6.0.1

6 years ago

6.0.0

6 years ago

5.0.0

6 years ago

4.0.1

6 years ago

4.0.0

6 years ago

3.3.0

6 years ago

3.2.0

6 years ago

3.1.3

6 years ago

3.1.2

6 years ago

3.1.1

6 years ago

3.1.0

6 years ago

3.0.1

6 years ago

3.0.0

6 years ago

2.1.0

6 years ago

2.0.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago