Share your Handlebars templates between Node and the browser with minimal effort.
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore
.npmignore
.travis.yml
Gruntfile.js
README.mkdn
handlebars-precompiler.js
package.json

README.mkdn

node-handlebars-precompiler

Automatic compilation of your Handlebars templates.

Installation

npm install handlebars-precompiler

Usage

This is how you might use it in an Express project:

app.configure('development', function(){
  hbsPrecompiler = require('handlebars-precompiler');
  hbsPrecompiler.watchDir(
    __dirname + "/views",
    __dirname + "/public/javascripts/templates.js",
    ['handlebars', 'hbs']
  );
});

In this example, we watch for changes to *.handlebars and *.hbs files in our views directory. When changes are made, precompilation is run on all Handlebars templates and exported to a single minified Javascript file.

On the browser side, you will need to deploy the Handlebars runtime-only release. You could use the full release which includes a compiler, but your site will be faster if you don't.

Client-side versions of the templates will be named and stored in the Handlebars object according to their file paths, e.g. Handlebars.templates['users/show']

Reference

handlebars-precompiler.do(opts)

Compiles all of the Handlebars templates

Params:

  • opts Options (object)

    • opts.min Whether or not to minify the files (boolean)

    • opts.fileRegex File regular expression to match (RegExp)

    • opts.templates Template directories to compile (string[])

    • opts.output Output file name (string)

    • opts.amd Exports amd style (require.js) (boolean)

    • opts.handlebarPath Path to handlebar.js (only valid for amd-style) (string)

    • opts.partial Compiling a partial template (boolean)

    • opts.commonjs Exports CommonJS style, path to Handlebars module (string)

handlebars-precompiler.watchDir(dir, outfile, extensions)

Compiles all of the Handlebars templates in the specified directory and monitors for changes.

Deprecated: This function is deprecated in favor of watch(), which allows for more options.

Params:

  • dir Directory with Handlebars templates (string)

  • outfile Output file name (string)

  • extensions An array of extensions of files (eg ['hbs']) to compile as Handlebars templates (string[])

handlebars-precompiler.watch(dir, outfile, opts)

Compiles all of the Handlebars templates in the specified directory and monitors for changes.

Params:

  • dir Directory with Handlebars templates (string)

  • outfile Output file name (string)

  • opts Options (object)

    • opts.extensions An array of extensions of files (eg ['hbs']) to compile as Handlebars templates (takes precedence over fileRegex) (string[])

    • opts.pollInterval Interval in milliseconds at which files are polled for changes (default: 500) (number)

    • opts.fileRegex A regular expression of the files to compile as Handlebars templates (instead of using .extensions) (RegExp)

    • opts.min Whether or not to minify the files (default: true) (boolean)

    • opts.silent Silence console output (default: false) (boolean)

    • opts.amd Exports amd style (require.js) (default: false) (boolean)

    • opts.handlebarPath Path to handlebar.js (only valid for amd-style) (default: '') (string)

    • opts.partial Compiling a partial template (default: false) (boolean)

    • opts.commonjs Exports CommonJS style, path to Handlebars module (default: false) (string)

Contributors

  • Project created by Joel Wietelmann
  • Nic Jansma
  • Matt Null
  • Brandon Paton

Version History