Skip to content

Neutrino HTML Template Middleware

@neutrinojs/html-template is Neutrino middleware for automatically creating HTML files for configured entry points.

NPM version NPM downloads

Requirements

  • Node.js v8.3+
  • Yarn v1.2.1+, or npm v5.4+
  • Neutrino v8

Installation

@neutrinojs/html-template can be installed via the Yarn or npm clients.

Yarn

❯ yarn add @neutrinojs/html-template

npm

❯ npm install --save @neutrinojs/html-template

Usage

@neutrinojs/html-template can be consumed from the Neutrino API, middleware, or presets. Require this package and plug it into Neutrino:

// Using function middleware format
const template = require('@neutrinojs/html-template');

// Usage shows default values
// Accepts options specified by HtmlWebpackTemplate
// https://github.com/jaketrent/html-webpack-template
neutrino.use(template, {
  inject: false,
  appMountId: 'root',
  xhtml: true,
  mobile: true,
  minify: {
    useShortDoctype: true,
    keepClosingSlash: true,
    collapseWhitespace: true,
    preserveLineBreaks: true
  },
  // Override pluginId to add an additional html-template plugin instance
  pluginId: 'html'
});

// Most commonly, you will want to override the initial page title:
neutrino.use(template, {
  title: 'React Application'
});
// Using object or array middleware format

// Usage shows default values
// Accepts options specified by HtmlWebpackTemplate
// https://github.com/jaketrent/html-webpack-template
module.exports = {
  use: [
    ['@neutrinojs/html-template', {
      inject: false,
      appMountId: 'root',
      xhtml: true,
      mobile: true,
      minify: {
        useShortDoctype: true,
        keepClosingSlash: true,
        collapseWhitespace: true,
        preserveLineBreaks: true
      },
      // Override pluginId to add an additional html-template plugin instance
      pluginId: 'html'
    }]
  ]
};

// Most commonly, you will want to override the initial page title:
module.exports = {
  use: [
    ['@neutrinojs/html-template', {
      title: 'React Application'
    }]
  ]
};

Customization

@neutrinojs/html-template creates some conventions to make overriding the configuration easier once you are ready to make changes.

Plugins

The following is a list of plugins and their identifiers which can be overridden:

Name Description Environments and Commands
html Automatically generates HTML files for configured entry points. all

Contributing

This middleware is part of the neutrino-dev repository, a monorepo containing all resources for developing Neutrino and its core presets and middleware. Follow the contributing guide for details.