2016-03-12 10 views
8

Utilizzo un coffeescript + ruby-on-rail. La compilazione di coffeescript in puro JS porta a un errore se c'è un problema di sintassi nel codice caffè. Sul browser quando eseguo l'app, viene visualizzato questo errore: ExecJS::RuntimeErrorErrore di compilazione del coffeescript in ruby ​​on rails

C'è un modo per scoprire che cosa ha causato l'errore di compilazione, quando si cercava di compilare codice caffè su JS? In allegato è uno screenshot dell'errore enter image description here

In seguito è la voce nel registro del server, il quale nessun modo indica il file che in realtà ha causato l'errore di sintassi:

ActionView::Template::Error (SyntaxError: [stdin]:25:10: unexpected :): 
    4:  <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    5:  <title><%= content_for?(:title) ? yield(:title) : "Inmonarch Website" %></title> 
    6:  <meta name="description" content="<%= content_for?(:description) ? yield(:description) : "Inmonarch Website" %>"> 
    7:  <%= stylesheet_link_tag 'application', media: 'all' %> 
    8:  <%= javascript_include_tag 'application' %> 
    9:  <%= csrf_meta_tags %> 
    10: </head> 
    app/views/layouts/dashboard.html.erb:7:in `_app_views_layouts_dashboard_html_erb__3120053487817944018_56303120' 


    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_source.erb (7.4ms) 
    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (3.0ms) 
    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.6ms) 
    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/template_error.html.erb within rescues/layout (25.5ms) 
    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/web-console-2.3.0/lib/web_console/templates/_markup.html.erb (0.3ms) 
    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/web-console-2.3.0/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string (0.3ms) 
    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/web-console-2.3.0/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string (0.3ms) 
    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/web-console-2.3.0/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.3ms) 
    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/web-console-2.3.0/lib/web_console/templates/console.js.erb within layouts/javascript (296.8ms) 
    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/web-console-2.3.0/lib/web_console/templates/main.js.erb within layouts/javascript (0.2ms) 
    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/web-console-2.3.0/lib/web_console/templates/error_page.js.erb within layouts/javascript (0.3ms) 
    Rendered /home/vipin8169/.rvm/gems/[email protected]/gems/web-console-2.3.0/lib/web_console/templates/index.html.erb (313.8ms) 

PS: - So quello che la sintassi errore è, ho fatto l'errore di sintassi deliberatamente per scoprire se sono in grado di tracciare l'errore con l'aiuto di log, che non ho potuto.

+0

Qui è una risposta di bassa qualità: dai dati Sento che "SyntaxError: [stdin]: 25: 10: inaspettata: "è interessante - puoi scavare per trovare quello stdin e provare a guardare intorno alla riga 25, simbolo 10 e qualcosa potrebbe essere sbagliato con il simbolo ':'. Hai anche opzioni per vedere 'Traccia applicazione' 'Traccia quadro' o 'Traccia completa' - in generale quelle cose hanno anche informazioni interessanti. –

+0

Ecco un altro metodo di bassa qualità: è possibile ridurre passo dopo passo il tuo coffeeScript, eliminando la funzionalità del tuo script fino a quando non ottieni errori di compilazione. Questo potrebbe indicare un luogo in cui le cose sono andate storte. È possibile utilizzare lo strumento di controllo della sintassi esterno per testare il codice coffeeScript in quanto sembra che si sia verificato un errore di sintassi. –

+0

'Traccia applicazione' 'Traccia quadro' o 'Traccia completa' non ha nulla di utile. 25:10 dice correttamente sulla posizione dell'errore, ma come faccio a conoscere il nome del file in cui è presente l'errore di sintassi? A cosa si riferisce [stdin]? – vipin8169

risposta

4

Una soluzione è quella di compilare i file .coffee fuori rotaie per ottenere un messaggio di errore decente:

Se non si dispone ancora di esso:

npm i coffee-script -g 

Poi, in una directory principale dei file .coffee :

coffee --output deleteme --compile . 

Quando hai finito, eliminare la cartella deleteme ha creato (che viene creato solo se si fissa tutti i th e errori). Questo dovrebbe trovare l'errore di sintassi per te e dirti esattamente dove si trova.

-1

È possibile utilizzare un linter online come http://www.coffeelint.org/ se si conosce il suo CoffeeScript che causa l'errore

+0

che potrebbe farti impazzire se hai un file di caffè zillion e non hai idea di quale sia un errore! – atefth

+0

Gli sviluppatori di Rails potrebbero voler semplicemente imparare javascript quindi ... – mp1131211

+0

conosco javascript molto meglio del caffè .. – vipin8169