Rails does not precompile with ember-template-compiler

After upgrading to Ember.js 1.13.2 from 1.10.b4, we can no longer pre-compile Handlebars templates that contain release warnings. Note the error and tracing for rake assets: precompile below. Oddly enough, we don't get any errors on a Mac in a production environment, but on our Linux build server (Ubuntu.) It doesn't work.

Upon investigation, it turns out that ember-template-compiler.js generates deprecation warnings during precompilation that get mixed in with the compiled output. There is a comment in this JS file: "The Ember build tools will remove any calls Ember.deprecate()

when the build is run." But I don't know how this works with the Sprockets toolchain. I am unable to override Ember.deprecate as the application.js file is not included during precompilation. If anyone can tell how Ember.deprecate calls are removed in Rails assets, precompilation will help debug that further.

We need to get rid of the omissions, but it may take a while! Thanks for your help with this issue.

Version info (we don't use ember-cli):

  • Rails 4.2.0
  • ember-rails 0.16.1 gem
  • barber gem 0.9.0
  • ember-template-compiler.js 1.13.2

Error message and trace:

RAILS_ENV=production bundle exec rake assets:precompile
...
rake aborted!
JSON::ParserError: 757: unexpected token at 'DEPRECATION: The `bind-attr` helper (L1:C7) is deprecated in favor of HTMLBars-style bound attributes.
{anonymous}(/tmp/execjs20150630-36511-b2stmyjs:15523:15)
Walker.visit (/tmp/execjs20150630-36511-b2stmyjs:22029:7)
visitors.Program (/tmp/execjs20150630-36511-b2stmyjs:22039:16)
Walker.children (/tmp/execjs20150630-36511-b2stmyjs:22062:7)
Walker.visit (/tmp/execjs20150630-36511-b2stmyjs:22030:12)
TransformBindAttrToAttributes_transform [as transform] (/tmp/execjs20150630-36511-b2stmyjs:15518:12)
preprocess (/tmp/execjs20150630-36511-b2stmyjs:21637:27)
compileSpec (/tmp/execjs20150630-36511-b2stmyjs:16640:52)
["ok","(function() {\ ... 
... locals: [],\n    templates: []\n  };\n}())"]'
(in     /var/lib/jenkins/jobs/ch_master_package/workspace/app/assets/javascripts/templates/_permanently_remove_post.hbs)
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/json-1.8.2/lib/json/common.rb:155:in `parse'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/json-1.8.2/lib/json/common.rb:155:in `parse'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/execjs-2.5.2/lib/execjs/external_runtime.rb:68:in `extract_result'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/execjs-2.5.2/lib/execjs/external_runtime.rb:39:in `exec'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/execjs-2.5.2/lib/execjs/external_runtime.rb:21:in `eval'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/execjs-2.5.2/lib/execjs/external_runtime.rb:46:in `call'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/barber-0.9.0/lib/barber/precompiler.rb:23:in `compile'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/barber-0.9.0/lib/barber/precompiler.rb:8:in `compile'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/ember-rails-0.16.1/lib/ember/handlebars/template.rb:75:in `precompile_ember_handlebars'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/ember-rails-0.16.1/lib/ember/handlebars/template.rb:27:in `evaluate'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/context.rb:197:in `block in evaluate'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/context.rb:194:in `each'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/context.rb:194:in `evaluate'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:12:in `initialize'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:374:in `new'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:374:in `block in build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:395:in `circular_call_protection'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:373:in `build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:94:in `block in build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/caching.rb:58:in `cache_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:93:in `build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:287:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:61:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:111:in `block in resolve_dependencies'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:105:in `each'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:105:in `resolve_dependencies'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:97:in `build_required_assets'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:16:in `initialize'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:374:in `new'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:374:in `block in build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:395:in `circular_call_protection'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:373:in `build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:94:in `block in build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/caching.rb:58:in `cache_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:93:in `build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:287:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:61:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:111:in `block in resolve_dependencies'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:105:in `each'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:105:in `resolve_dependencies'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:97:in `build_required_assets'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/processed_asset.rb:16:in `initialize'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:374:in `new'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:374:in `block in build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:395:in `circular_call_protection'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:373:in `build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:94:in `block in build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/caching.rb:58:in `cache_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:93:in `build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:287:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:61:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/bundled_asset.rb:16:in `initialize'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:377:in `new'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:377:in `build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:94:in `block in build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/caching.rb:58:in `cache_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:93:in `build_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/base.rb:287:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/index.rb:61:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:211:in `block in find_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:257:in `benchmark'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:210:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:119:in `block in compile'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:118:in `each'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/sprockets/manifest.rb:118:in `compile'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:70:in `block (3 levels) in define'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-2.12.3/lib/rake/sprocketstask.rb:146:in `with_logger'
/usr/local/rvm/gems/ruby-2.2.0@ch_master_package/gems/sprockets-rails-2.2.4/lib/sprockets/rails/task.rb:69:in `block (2 levels) in define'
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

      

+3


source to share


1 answer


Yes, I had the same experience with Ember 1.12 update, see https://github.com/emberjs/rfcs/pull/65#issuecomment-114964973 , agitation broke build and blocked release for my project. I had to fix the delays that were blocking, a day's delayed release



0


source







All Articles