2016-03-12 15 views
8

Używam coffeescript + ruby-on-rails. Kompilacja coffeescript do czystego JS prowadzi do błędu, jeśli w kodzie kawy występuje problem z składnią. W przeglądarce po uruchomieniu aplikacji pojawia się następujący błąd: ExecJS::RuntimeErrorBłąd kompilacji Coffeescript w rubinach na szynach

Czy jest jakiś sposób, aby dowiedzieć się, co spowodowało błąd kompilacji, kiedy próbował skompilować kod kawy do JS? dołączony jest zrzut ekranu z błędem enter image description here

Poniżej znajduje się wpis w dzienniku serwera, który w żaden sposób wskazuje plik, który rzeczywiście spowodował błąd składni:

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: - Wiem, co składnia jest błąd, celowo zrobiłem błąd składni, aby dowiedzieć się, czy jestem w stanie prześledzić błąd za pomocą logów, których nie mogłem.

+0

Oto niskiej jakości odpowiedź: z danych czuję, że „SyntaxError: [stdin]: 25: 10: nieoczekiwany: "jest interesująca - możesz wykopać się, aby znaleźć stdin i spróbować rozejrzeć się po linii 25, symbolu 10, a coś może być nie tak z symbolem": ". Masz również opcje, aby zobaczyć "Śledzenie aplikacji" "Trace Framework" lub "Full Trace" - ogólnie rzecz biorąc te rzeczy mają również ciekawe informacje. –

+0

Oto kolejna metoda niskiej jakości: możesz krok po kroku zredukować swój coffeeScript, odrzucając funkcję po skrypcie, dopóki nie pojawią się błędy kompilacji. Może to wskazywać na miejsce, w którym coś poszło nie tak. Możesz użyć zewnętrznego narzędzia do sprawdzania składni, aby przetestować swój kod kawyScript, ponieważ wydaje się, że masz błąd składni. –

+0

"Śledzenie aplikacji" "Framing Framework" lub "Full Trace" nie ma nic użytecznego. 25:10 poprawnie mówi o lokalizacji błędu, ale jak mogę poznać nazwę pliku, w którym występuje błąd składni? Do czego odnosi się [stdin]? – vipin8169

Odpowiedz

4

Jednym rozwiązaniem jest skompilowanie .coffee plików poza szynami dostać przyzwoity komunikat o błędzie:

Jeżeli nie masz jeszcze go:

npm i coffee-script -g 

Następnie w katalogu nadrzędnego swoimi .coffee plików :

coffee --output deleteme --compile . 

Kiedy skończysz, usuń folder deleteme on utworzony (który jest tworzony tylko wtedy, gdy naprawić wszystkie th e błędy). Powinno to znaleźć błąd składni i powiedzieć dokładnie, gdzie to jest.

-1

Można użyć LINTER online, jak http://www.coffeelint.org/ jeśli znasz jego coffeescript przyczyną błędu

+0

, które mogą doprowadzić Cię do szału, jeśli masz pliki kawy zillion i nie masz pojęcia, który z nich jest w błędzie! – atefth

+0

Programiści Railsów mogą po prostu nauczyć się javascript, a następnie ... – mp1131211

+0

znam javascript znacznie lepiej niż kawa .. – vipin8169

Powiązane problemy