JSPM

dustc-commonjs

1.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 14
  • Score
    100M100P100Q37985F
  • License Apache License v2.0

Dust compiler that produces a CommonJS module as output

Package Exports

  • dustc-commonjs

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 (dustc-commonjs) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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;})();