Skip to content

Share your Handlebars templates between Node and the browser with minimal effort.

Notifications You must be signed in to change notification settings

nicjansma/node-handlebars-precompiler

Repository files navigation

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

About

Share your Handlebars templates between Node and the browser with minimal effort.

Resources

Stars

Watchers

Forks

Packages

No packages published