我正在使用coffeescript + ruby-on-rails。如果咖啡代码中存在语法问题,将coffeescript编译为纯JS会导致错误。在浏览器上运行应用程序时,出现此错误:ExecJS::RuntimeErrorRuby on Rails中的Coffeescript编译错误
有没有什么方法可以找出导致编译错误的原因,当它试图编译咖啡代码给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/[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: - 我知道什么语法错误是,我故意犯了语法错误,以查明我是否能够在日志的帮助下跟踪错误,但我不能。
下面是一个低质量的答案:从您的数据我觉得“语法错误:[标准输入]:25:10:意外: “很有意思 - 你可以挖掘找到stdin,并尝试围绕第25行看,符号10,可能是':'符号的错误。您还可以选择查看“应用程序跟踪”“框架跟踪”或“完整跟踪” - 通常这些事情都有有趣的信息。 –
这是另一种低质量的方法:您可以逐步减少coffeeScript,逐个扔掉脚本的功能,直到您没有编译错误。这可能表明事情出错的地方。您可以使用外部语法检查工具来测试您的coffeeScript代码,因为您似乎有语法错误。 –
'应用程序跟踪''框架跟踪'或'完整跟踪'没有任何用处。 25:10正确地说错误的位置,但我如何才能知道语法错误存在的文件名? [stdin]指的是什么? – vipin8169