node package manager

dustc-commonjs

dustc-commonjs

Transforms a compiled Dust template into a CommonJS module.

Installation

npm install dustc-commonjs --save

Why?

Standard Dust modules compile down to JavaScript code that registers a compiled template function using a given template name and the compiled output assumes that there is a global dust variable (globals are evil). By producing a CommonJS module as output the template can be loaded using the standard Node.js module loading system based on require.

Usage

Given the following sample template:

Hello {name}!

And the following sample program:

var templatePath = require('path').join(__dirname, 'hello.dust');
require('dustc-commonjs').compileFile(templatePath, function(err, src) {
    if (err) {
        // Handle the error 
        return;
    }
 
    // src will be the compiled JavaScript code for the Dust template as a CommonJS module 
})

The output compiled template will be similar to the following:

(function(){module.exports=body_0;function body_0(chk,ctx){return chk.write("Hello ").reference(ctx.get(["name"], false),ctx,"h").write("!");}return body_0;})();

Notice the usage of module.exports.

In comparison, the standard compiled output (that is _not) a CommonJS module) will be similar to the following:

(function(){module.exports=body_0;function body_0(chk,ctx){return chk.write("Hello ").reference(ctx.get(["name"], false),ctx,"h").write("!");}return body_0;})();