Skip to content

avaly/dust-loader

Repository files navigation

dust loader for webpack

Travis

Compiles dust templates and exports the compiled functions, allowing for rendering of the templates in a browser environment.

Usage

Documentation: Using loaders

var template = require('dust!./file.dust');
// => returns file.dust compiled as template function

Recommended config

module.exports = {
  module: {
    loaders: [
      {
        test: /\.dust$/,
        loader: 'dust-loader'
      }
    ]
  },
  plugins: [
    new webpack.ProvidePlugin({
      dust: 'dustjs-linkedin'
    })
  ],
};

Then you only need to write: require('./file.dust')

You can also preserve the whitespace in your template with the following loader config:

{
  test: /\.dust$/,
  use: {
    loader: 'dust-loader',
    options: 'preserveWhitespace'
  }
}

or

{
  test: /\.dust$/,
  use: {
    loader: 'dust-loader',
    options: {
      preserveWhitespace: true
    }
  }
}

rootDir

Sets the root directory for your dust templates. The rootDir string will be removed from the beginning of the dust module path before it is turned into the template name.

{
  test: /\.dust$/,
  use: {
    loader: 'dust-loader',
    options: {
      rootDir: 'src/app/templates'
    }
  }
}

Rendering a template

You will need to bundle the dust core in your pack in order to render the compiled templates.

var tpl = require('./views/foo/bar.tpl');

// with dust <= 2.6
dust.render('views/foo/bar', context, function(err, result){
	// result holds the rendered HTML code
});
// with dust >= 2.7
dust.render(tpl, context, function(err, result){
	// result holds the rendered HTML code
});

License

MIT (http://www.opensource.org/licenses/mit-license.php)