Search code examples
javascriptember.jsgruntjsgrunt-ember-templates

Not possible to use the latest ember with pre-compiled templates


I have just installed the latest ember starter kit. It has:

  • Ember.VERSION : 1.0.0-rc.5
  • Handlebars.VERSION : 1.0.0-rc.4
  • jQuery.VERSION : 1.9.1

I am using grunt-contrib-handlebars@0.5.9 to pre-compile my templates (this is the latest version available). I do not know what version of handlebars is included in that package, but I get the following error when starting the application:

Uncaught Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version (>= 1.0.0-rc.4) or downgrade your runtime to an older version (== 1.0.0-rc.3).

I have even tried loading another handlebars' runtime (version 1.0.0-rc.3), but ember is not happy about it:

Uncaught Error: assertion failed: Ember Handlebars requires Handlebars version 1.0.0-rc.4, COMPILER_REVISION expected: 3, got: 2 – Please note: Builds of master may have other COMPILER_REVISION values.

So ember needs 1.0.0-rc.4, but there is no grunt precompiler available for this version. Catch-22?

Should I drop pre-compiled templates? Having this break every time I upgrade ember is going to be very annoying ...


Solution

  • You could use the emberTemplates grunt task, from here: https://github.com/dgeb/grunt-ember-templates since this version has the updated dependencies and is maintained from a member of the ember core team.

    As I guess you already know, to use the grunt-ember-templates you can define a dependence in your package.json

      ...
      "devDependencies": {
        ...
        "grunt-ember-templates": "0.4.7"
      }
      ...
    

    and run npm install.

    Hope it helps