ExecJS :: ProgramError: Unexpected token: name (option)

My application works fine in a local environment. I tried git push to build a hero. My teams:

 bundle install git add . git commit -am "abcdef" git push heroku master 

Then I ran into an asset problem: precompile

 remote: -----> Preparing app for Rails asset pipeline remote: Running: rake assets:precompile remote: I, [2016-01-04T08:32:35.471098 #1018] INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/recruiters-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.js remote: I, [2016-01-04T08:32:35.471825 #1018] INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/recruiters-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.js.gz remote: I, [2016-01-04T08:32:35.477826 #1018] INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/recruiters-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css remote: I, [2016-01-04T08:32:35.477974 #1018] INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/recruiters-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.css.gz remote: I, [2016-01-04T08:32:35.575303 #1018] INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/events-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.js remote: I, [2016-01-04T08:32:35.575465 #1018] INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/events-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.js.gz remote: I, [2016-01-04T08:32:35.623887 #1018] INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/events-31e95c603f03e300e73e01cd6ee747799da57b4d12924aa979e0fa0749681cca.css remote: I, [2016-01-04T08:32:35.624406 #1018] INFO -- : Writing /tmp/build_5d68c6d2f7845ca719a5f77705a12798/public/assets/events-31e95c603f03e300e73e01cd6ee747799da57b4d12924aa979e0fa0749681cca.css.gz remote: rake aborted! remote: ExecJS::ProgramError: Unexpected token: name (option) (line: 242, col: 14, pos: 7159) remote: Error remote: at new JS_Parse_Error (/tmp/execjs20160104-1018-1ens1gjjs:2659:11936) remote: at js_error (/tmp/execjs20160104-1018-1ens1gjjs:2659:12155) remote: at croak (/tmp/execjs20160104-1018-1ens1gjjs:2659:20622) remote: at token_error (/tmp/execjs20160104-1018-1ens1gjjs:2659:20759) remote: at unexpected (/tmp/execjs20160104-1018-1ens1gjjs:2659:20847) remote: at semicolon (/tmp/execjs20160104-1018-1ens1gjjs:2659:21320) remote: at simple_statement (/tmp/execjs20160104-1018-1ens1gjjs:2659:24179) remote: at /tmp/execjs20160104-1018-1ens1gjjs:2659:22152 remote: at /tmp/execjs20160104-1018-1ens1gjjs:2659:21493 remote: at block_ (/tmp/execjs20160104-1018-1ens1gjjs:2659:26198)new JS_Parse_Error ((execjs):2659:11936) remote: js_error ((execjs):2659:12155) remote: croak ((execjs):2659:20622) remote: token_error ((execjs):2659:20759) remote: unexpected ((execjs):2659:20847) remote: semicolon ((execjs):2659:21320) remote: simple_statement ((execjs):2659:24179) remote: (execjs):2659:22152 remote: (execjs):2659:21493 remote: block_ ((execjs):2659:26198) 

Please note that I have controller specific components (see below). I wonder if that would cause it.

view / layout / application.html.erb

 <%= stylesheet_link_tag "application", params[:controller], :media => "all", 'data-turbolinks-track' => true %> <%= javascript_include_tag 'application', params[:controller], 'data-turbolinks-track' => true %> 

initializers /assets.rb

 # Compile controller assets %w( recruiters events forms candidates ).each do |controller| Rails.application.config.assets.precompile += ["#{controller}.js", "#{controller}.css"] end 

Any thoughts or suggestions?

Update I was able to find where this problem came from. Although I'm not sure what is wrong and why it works fine locally.

  238 if (fieldClass.match(/(select|checkbox-group|radio-group)/)) { 239 previewData.values = []; 240 241 $('.sortable-options li', field).each(function() { 242 let option = {}; ==============^ SyntaxError: missing ; before statement 243 option.selected = $('.select-option', $(this)).is(':checked'); 244 option.value = $('.option-value', $(this)).val(); 245 option.label = $('.option-label', $(this)).val(); 246 247 previewData.values.push(option); 248 }); 249 } 

Syntax error

+6
source share
1 answer

By updating the js syntax, I was able to solve the problem, and pre-compiling the asset was successful.

original

 let option = {}; 

updated

 var option = {}; 
+9
source

All Articles