Precompile Handlebars templates for Ember.js.
Install this grunt plugin next to your project's grunt.js gruntfile with: npm install grunt-ember-templates
Then add this line to your project's grunt.js gruntfile:
grunt.loadNpmTasks('grunt-ember-templates');Inside your grunt.js file, add a section named ember_templates. This section specifies the files to compile and the options used with handlebars.
This defines what files this task will process and should contain key:value pairs.
The key (destination) should be an unique filepath (supports grunt.template) and the value (source) should be a filepath or an array of filepaths (supports minimatch).
Note: Values are precompiled to the Ember.TEMPLATES array in the order passed.
This controls how this task operates and should contain key:value pairs, see options below.
This option accepts a function which takes one argument (the source template filepath) and returns a string which will be used as the key for the precompiled template object. The example below stores all templates on the default JST namespace in capital letters.
options: {
templateName: function(sourceFile) {
return sourceFile.replace(/path\/to\/templates\//, '');
}
}ember_templates: {
compile: {
options: {
templateName: function(sourceFile) {
return sourceFile.replace(/path\/to\//, '');
}
},
files: {
"path/to/result.js": "path/to/source.handlebars",
"path/to/another.js": ["path/to/sources/*.handlebars", "path/to/more/*.handlebars"]
}
}
}Here's an example task that watches for changes to your templates and automatically recompiles them:
watch: {
ember_templates: {
files: 'app/scripts/**/*.handlebars',
tasks: 'ember_templates reload'
},
}Many thanks to the following projects upon which this was based:
I created this project as an alternative to grunt-ember-handlebars for the following reasons:
- to provide maximum compatibility with the grunt-contrib project, using features such as destination:source file arguments
- to allow for customizable template names based upon source file paths
- 2013/02/18 - v0.4.3 - Upgraded to grunt 0.4.0 final.
- 2013/02/17 - v0.4.3rc8 - Now uses ember-template-compiler. Upgraded to grunt 0.4.0.rc8.
- 2013/02/06 - v0.4.3rc7 - Updated to latest handlebars for compatibility with latest ember - thanks @codeofficer!
- 2013/01/24 - v0.4.2rc7 - Upgraded for grunt 0.4.0rc7 and handlebars 1.0.rc.2 - thanks @GManzato!
- 2013/01/10 - v0.4.2rc5 - Upgraded for grunt 0.4.0rc5 - thanks @trev!
- 2013/01/01 - v0.4.1 - Fixed file pattern matching
- 2012/12/26 - v0.4.0 - Upgraded for grunt 0.4.0 compatibility - thanks @trek!
- 2013/01/24 - v0.3.1 - Fixed grunt-contrib-lib dependency
- 2013/01/24 - v0.3.0 - Grunt 0.3.0 and Handlebars 1.0.rc.2 compatible - thanks @GManzato!
- 2012/10/11 - v0.2.0 - Renamed grunt-ember-templates from grunt-contrib-ember.
- 2012/09/28 - v0.1.0 - Initial release.
