handlebars-precompiler v2.1.0
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:
optsOptions (object)opts.minWhether or not to minify the files (boolean)opts.fileRegexFile regular expression to match (RegExp)opts.templatesTemplate directories to compile (string[])opts.outputOutput file name (string)opts.amdExports amd style (require.js) (boolean)opts.handlebarPathPath to handlebar.js (only valid for amd-style) (string)opts.partialCompiling a partial template (boolean)opts.commonjsExports 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:
dirDirectory with Handlebars templates (string)outfileOutput file name (string)extensionsAn 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:
dirDirectory with Handlebars templates (string)outfileOutput file name (string)optsOptions (object)opts.extensionsAn array of extensions of files (eg['hbs']) to compile as Handlebars templates (takes precedence over fileRegex) (string[])opts.pollIntervalInterval in milliseconds at which files are polled for changes (default: 500) (number)opts.fileRegexA regular expression of the files to compile as Handlebars templates (instead of using .extensions) (RegExp)opts.minWhether or not to minify the files (default: true) (boolean)opts.silentSilence console output (default: false) (boolean)opts.amdExports amd style (require.js) (default: false) (boolean)opts.handlebarPathPath to handlebar.js (only valid for amd-style) (default: '') (string)opts.partialCompiling a partial template (default: false) (boolean)opts.commonjsExports CommonJS style, path to Handlebars module (default: false) (string)
Contributors
- Project created by Joel Wietelmann
- Nic Jansma
- Matt Null
- Brandon Paton
Version History
- v2.1.0 - Export the templates for commonJS, Fix opts.partial
- v2.0.0 - Upgraded to Handlebars v2.0.0 which is not compatible with v1.x
- v1.0.6 -
pollIntervalwas harcoded to 100 - v1.0.5 - Use
watchmodule to detect file and tree changes - v1.0.4 - Fixed issue with temp files crashing precompiler