Running bundle exec rake assets:precompile works fine on my production server. However, when I run RAILS_ENV=production bundle exec rake assets:precompile I get the following error:
ExecJS::ProgramError: Unexpected character '`' (line: 30253, col: 31, pos: 992179)
Error
at new JS_Parse_Error (/tmp/execjs20151217-30172-7aeexbjs:2659:11936)
at js_error (/tmp/execjs20151217-30172-7aeexbjs:2659:12155)
at parse_error (/tmp/execjs20151217-30172-7aeexbjs:2659:13967)
at Object.next_token [as input] (/tmp/execjs20151217-30172-7aeexbjs:2659:19118)
at next (/tmp/execjs20151217-30172-7aeexbjs:2659:20436)
at new_ (/tmp/execjs20151217-30172-7aeexbjs:2659:27854)
at expr_atom (/tmp/execjs20151217-30172-7aeexbjs:2659:28635)
at maybe_unary (/tmp/execjs20151217-30172-7aeexbjs:2659:31652)
at expr_ops (/tmp/execjs20151217-30172-7aeexbjs:2660:404)
at maybe_conditional (/tmp/execjs20151217-30172-7aeexbjs:2660:496)
at maybe_assign (/tmp/execjs20151217-30172-7aeexbjs:2660:939)
at expression (/tmp/execjs20151217-30172-7aeexbjs:2660:1252)
at vardefs (/tmp/execjs20151217-30172-7aeexbjs:2659:27440)
at var_ (/tmp/execjs20151217-30172-7aeexbjs:2659:27595)
(in /home/culinae/releases/1450281843/app/assets/javascripts/application.js)new JS_Parse_Error ((execjs):2659:11936)
js_error ((execjs):2659:12155)
parse_error ((execjs):2659:13967)
Object.next_token [as input] ((execjs):2659:19118)
next ((execjs):2659:20436)
new_ ((execjs):2659:27854)
expr_atom ((execjs):2659:28635)
maybe_unary ((execjs):2659:31652)
expr_ops ((execjs):2660:404)
maybe_conditional ((execjs):2660:496)
maybe_assign ((execjs):2660:939)
expression ((execjs):2660:1252)
vardefs ((execjs):2659:27440)
var_ ((execjs):2659:27595)
/usr/local/rvm/gems/ruby-2.2.1/gems/execjs-2.6.0/lib/execjs/external_runtime.rb:39:in `exec'
/usr/local/rvm/gems/ruby-2.2.1/gems/execjs-2.6.0/lib/execjs/external_runtime.rb:21:in `eval'
/usr/local/rvm/gems/ruby-2.2.1/gems/execjs-2.6.0/lib/execjs/external_runtime.rb:46:in `call'
/usr/local/rvm/gems/ruby-2.2.1/gems/uglifier-2.7.2/lib/uglifier.rb:212:in `run_uglifyjs'
/usr/local/rvm/gems/ruby-2.2.1/gems/uglifier-2.7.2/lib/uglifier.rb:179:in `compile'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/uglifier_compressor.rb:25:in `evaluate'
/usr/local/rvm/gems/ruby-2.2.1/gems/tilt-1.4.1/lib/tilt/template.rb:103:in `render'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/context.rb:197:in `block in evaluate'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/context.rb:194:in `each'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/context.rb:194:in `evaluate'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/bundled_asset.rb:25:in `initialize'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/base.rb:377:in `new'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/base.rb:377:in `build_asset'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/index.rb:94:in `block in build_asset'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/caching.rb:58:in `cache_asset'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/index.rb:93:in `build_asset'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/base.rb:287:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/index.rb:61:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/manifest.rb:211:in `block in find_asset'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/manifest.rb:257:in `benchmark'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/manifest.rb:210:in `find_asset'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/manifest.rb:119:in `block in compile'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/manifest.rb:118:in `each'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/sprockets/manifest.rb:118:in `compile'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-rails-2.3.2/lib/sprockets/rails/task.rb:70:in `block (3 levels) in define'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-2.11.0/lib/rake/sprocketstask.rb:146:in `with_logger'
/usr/local/rvm/gems/ruby-2.2.1/gems/sprockets-rails-2.3.2/lib/sprockets/rails/task.rb:69:in `block (2 levels) in define'
This might have to do with ES2015, but I can't seem to fix it. I tried removing template strings from my codebase but to no avail. I'm using normal .js.jsx files.
It works, just forgot add .jsx to a file that contained ES6.
I had the same problem! I didn't even know about .jsx extensions! Thank you!
+1 thanks!
In my case, the asset compilation was successful in production but on staging it's giving the above error. So I checked nodejs version on production and staging, on production v12.10.0 and on staging v10.XX.XX. So I updated the nodejs version v12.10.0 on staging and it is working now.
Most helpful comment
It works, just forgot add
.jsxto a file that contained ES6.