Skip to content
A Grunt plugin that precompiles Handlebars templates for Ember.js
Pull request Compare This branch is 8 commits ahead, 112 commits behind master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

grunt-ember-templates Build Status

Precompile Handlebars templates for Ember.js.

Getting Started

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:



Inside your grunt.js file, add a section named ember_templates. This section specifies the files to compile and the options used with handlebars.

files object

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.

options object

This controls how this task operates and should contain key:value pairs, see options below.


templateName function

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\//, '');

Config Example

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

Release History

  • 2013/03/07 - v0.3.2 - Backported ember-template-compiler for Grunt 0.3 compatibility - thanks @rafshar
  • 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.
Something went wrong with that request. Please try again.