Ошибка компиляции Coffeescript в ruby ​​на рельсах

Я использую coffeescript+ruby-on-rails. Компиляция coffeescript в чистый JS приводит к ошибке, если в коде кофе есть синтаксическая проблема. В браузере, когда я запускаю приложение, я получаю эту ошибку: ExecJS:: RuntimeError

Есть ли способ узнать, что вызвало ошибку компиляции, когда он пытался скомпилировать код кофе в JS? Прикреплен скриншот ошибки введите описание изображения здесь

Ниже приведена запись в журнале сервера, которая никак не указывает на файл, который фактически вызвал синтаксическую ошибку:

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/ruby-2.2.3@rails426/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_source.erb (7.4ms)
  Rendered /home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (3.0ms)
  Rendered /home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.6ms)
  Rendered /home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/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/ruby-2.2.3@rails426/gems/web-console-2.3.0/lib/web_console/templates/_markup.html.erb (0.3ms)
  Rendered /home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/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/ruby-2.2.3@rails426/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/ruby-2.2.3@rails426/gems/web-console-2.3.0/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.3ms)
  Rendered /home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/web-console-2.3.0/lib/web_console/templates/console.js.erb within layouts/javascript (296.8ms)
  Rendered /home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/web-console-2.3.0/lib/web_console/templates/main.js.erb within layouts/javascript (0.2ms)
  Rendered /home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/web-console-2.3.0/lib/web_console/templates/error_page.js.erb within layouts/javascript (0.3ms)
  Rendered /home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/web-console-2.3.0/lib/web_console/templates/index.html.erb (313.8ms)

PS:- Я знаю, что такое синтаксическая ошибка, я сделал синтаксическую ошибку преднамеренно, чтобы выяснить, могу ли я отследить ошибку с помощью журналов, чего я не смог.

2 ответа

Решение

Одним из обходных путей является компиляция вашего .coffee файлы за пределами рельсов, чтобы получить достойное сообщение об ошибке:

Если у вас его еще нет:

npm i coffee-script -g

Затем в родительском каталоге вашего .coffee файлы:

coffee --output deleteme --compile .

Когда вы закончите, удалите deleteme созданная папка (которая создается только если вы исправите все ошибки). Это должно найти синтаксическую ошибку для вас и точно сказать, где она находится.

Вы можете использовать онлайн-линтер, например http://www.coffeelint.org/ если вы знаете, что его coffeescript вызывает ошибку

Другие вопросы по тегам