Webpack loader for rendering HTML from EJS templates
CoffeeScript JavaScript
Clone or download
Latest commit 8406242 Jul 17, 2017
Permalink
Failed to load latest commit information.
src Feature: resource query Jul 17, 2017
test Feature: resource query Jul 17, 2017
.babelrc v2.0.0 Jun 9, 2016
.editorconfig Initial commit Feb 8, 2016
.eslintrc.yml v2.0.0 Jun 9, 2016
.gitignore Update: 3.0.0 May 9, 2017
.npmignore Update: 3.0.0 May 9, 2017
.travis.yml Update: 3.0.0 May 9, 2017
LICENSE Update: 3.0.0 May 9, 2017
README.md Feature: resource query Jul 17, 2017
coffeelint.json Update: 3.0.0 May 9, 2017
package-lock.json 3.1.0 Jul 17, 2017
package.json 3.1.0 Jul 17, 2017

README.md

ejs-html-loader

Version Build Coverage Dependencies

Webpack loader for rendering plain HTML from EJS template files

Install

Install with npm. Ensure EJS and Webpack are installed as well, as these are peer dependencies.

npm install --save-dev webpack ejs ejs-html-loader

Usage

In your Webpack configuration, pass data to your templates through either an 'options' object or as query parameters.

module.exports = {
  // ...
  module: {
    rules: [{
      test: /\.ejs$/,
      loader: 'ejs-html-loader',
      options: {
        title: 'The Ant: An Introduction',
        season: 1,
        episode: 9,
        production: process.env.ENV === 'production'
      }
    }]
  }
};

Data may also be passed through a resource query. These data take precedence over any options with the same name.

import "./index.ejs?page=home";

Options

All properties passed as loader options will be available to your templates as local variables. In addition, the following EJS options may be set:

  • context : object
    The value of this in your templates. If specified, its properties will be available in your templates, e.g. <%= this.somePropery %>.

  • delimiter : string='%'
    Character used inside of angle brackets marking opening/closing tags. Defaults to '%', as in <%= some.variable %>.

For example:

{
  // ...
  options: {
    delimiter: '$',
    title: 'The Naked Ant',
    season: 1,
    episode: 12
  }
}

Includes

The EJS filename option is set automatically, so you may include partials relative to your template files. If you want your included files to automatically recompile in watch mode, be sure to use the following syntax:

<% include some/file %>

License

Copyright © 2016–2017 Akim McMath. Licensed under the MIT License.