Automatic compilation of your Handlebars templates.
npm install handlebars-precompiler
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']
Compiles all of the Handlebars templates
-
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)
-
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.
-
dirDirectory with Handlebars templates (string) -
outfileOutput file name (string) -
extensionsAn array of extensions of files (eg['hbs']) to compile as Handlebars templates (string[])
Compiles all of the Handlebars templates in the specified directory and monitors for changes.
-
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)
-
- Project created by Joel Wietelmann
- Nic Jansma
- Matt Null
- Brandon Paton
- v2.1.1 - Ensure watch v0.12.0 is installed for this fix
- 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