JSPM

  • Created
  • Published
  • Downloads 663
  • Score
    100M100P100Q9124F
  • License MPL-2.0

Neutrino middleware for automatic HTML file generation from metadata

Package Exports

  • @neutrinojs/html-template

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@neutrinojs/html-template) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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 ^8.10 or 10+
  • Yarn v1.2.1+, or npm v5.4+
  • Neutrino 9
  • webpack 4

Installation

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

Yarn

yarn add --dev @neutrinojs/html-template

npm

npm install --save-dev @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

// Usage shows default values
// Accepts options specified by html-webpack-plugin:
// https://github.com/jantimon/html-webpack-plugin#configuration
neutrino.use(template, {
  // @neutrinojs/html-template includes a custom template that has more features
  // (eg appMountId and lang support) than the default html-webpack-plugin template:
  // https://github.com/jantimon/html-webpack-plugin/blob/master/default_index.ejs
  template: require.resolve('@neutrinojs/html-template/template.ejs'),
  appMountId: 'root',
  lang: 'en',
  meta: {
    viewport: 'width=device-width, initial-scale=1'
  },
  // 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 html-webpack-plugin:
// https://github.com/jantimon/html-webpack-plugin#configuration
module.exports = {
  use: [
    ['@neutrinojs/html-template', {
      // @neutrinojs/html-template includes a custom template that has more features
      // (eg appMountId and lang support) than the default html-webpack-plugin template:
      // https://github.com/jantimon/html-webpack-plugin/blob/master/default_index.ejs
      template: require.resolve('@neutrinojs/html-template/template.ejs'),
      appMountId: 'root',
      lang: 'en',
      meta: {
        viewport: 'width=device-width, initial-scale=1'
      },
      // 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 NODE_ENV
html Automatically generates HTML files for configured entry points. all

Contributing

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