2016-01-04 13 views
6

Meine App läuft in der lokalen Umgebung einwandfrei. Ich habe versucht, git push einen Build zu Heroku. Meine Befehle sind:ExecJS :: ProgramError: Unerwartetes Token: Name (Option)

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

begegnete ich dann ein Problem mit einem Vermögen: 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) 

Bitte beachte, dass ich steuerungsspezifische Vermögenswerte kompilieren (siehe unten). Ich frage mich, ob das das Problem verursachen würde.

views/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 

Irgendwelche Gedanken oder Anregungen?

Aktualisieren Ich konnte feststellen, wo das Problem liegt. Obwohl ich nicht sicher bin, was falsch ist und warum es lokal gut funktioniert.

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

+0

einen ähnlichen Fehler hatten aufgrund folgenden Code: 'debugger' ' var Umwandlung = {}; ' Es gab keine Semikolon nach 'Debugger', obwohl es eine neue Zeile gab. –

Antwort

9

Durch die js Syntax aktualisieren, ich war in der Lage, die Ausgabe und das Asset Precompilieren ging erfolgreich zu lösen.

original

let option = {}; 

aktualisiert

var option = {}; 
+0

Eine Idee, warum dies seit dem Original passiert ist gültig JS? – sandre89

+0

'Let' ist ES6-Syntax. –