Skip to content

coditorium/nodejs-swig-loader

Repository files navigation

Webpack Swig loader

Travis build status dependencies Coverage Status

NPM info

Webpack loader for swig templates.

How to use

Webpack configuration

You can define swig loader using webpack configuration.

{
  module: {
    loaders: [
      { test: /\.swig$/, loader: "swig-loader" }
    ]
  }
};

Require parameter

You can load swig template using require parameter.

var template = require('swig!./template.swig');

Passing swig options

You can pass swig options to the loader using swigLoader.options({ ... }) or loader query parameters. If you choose loader query parameters take a look at query webpack standard query format.

// Option #1 - Swig loader global options
var swigLoader = require('swig-loader');
swigLoader.options({
  varControls: ['{:', ':}']
});

// Option #2 - Swig loader query parameters
var swigLoader = require('swig?varControls[]={:&varControls[]=:}!./template.swig');

Passing template parameters

You can pass template parameters to the loader using resource query parameters. If you need to pass some parameters take a look at query webpack standard query format.

var swigLoader = require('swig!./template.swig?username=John');

Customizers

You can customize query, resourceQuery and result using customizers:

var swigLoader = require('swig-loader');

swigLoader.queryCustomizer(function(query, templatepath) {
    // modify query
});

swigLoader.resourceQueryCustomizer(function(resourceQuery, templatepath) {
    // modify resource query
});

swigLoader.resultCustomizer(function(query, templatepath, resourceQuery, query) {
    // modify result and don't forget to return it!
    return result;
});