在我的一个Rails应用程序中,ExecJS没有显示coffeescript编译错误的行号.我的编译错误信息将如下所示:
ExecJS::RuntimeError in Referrals#new Showing ~/MyApp/app/views/layouts/application.html.erb where line #6 raised: SyntaxError: unexpected IDENTIFIER (in ~/MyApp/assets/javascripts/utils.js.coffee)
请注意,咖啡脚本源没有行号(第6行是erb文件).
ExecJS::ProgramError in Projects#show Showing ~/OtherApp/app/views/layouts/application.html.erb where line #17 raised: Error: Parse error on line 6: Unexpected 'STRING' (in ~/OtherApp/app/assets/javascripts/projects.js.coffee)
所以似乎不同之处在于ExecJS :: ProgramError将给出行号,其中ExecJS :: RuntimeError将不会.
任何人有什么想法如何得到行号回来?为什么我的应用程序在咖啡资源编译时创建RuntimeErrors,而另一个则是给予ProgramErrors?我检查了Rails,他们似乎匹配.
请注意,如果我修复编译错误,应用程序运行正常(例如,咖啡文件实际上是编译) – 但是这些行号可能会指向我的编译错误!
编辑
我意识到,无论是ExecJS Runtimeerror还是ProgramError似乎并不重要 – 在第一个应用程序中,没有给出行数,在第二个应用程序中总是存在.