在我的一个 Rails 应用程序中,ExecJS 没有显示咖啡脚本编译错误的行号。我的编译错误消息如下所示:
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,它们似乎匹配。
请注意,如果我修复了编译错误,则应用程序运行良好(例如,咖啡文件实际上已被编译)——但最好让这些行号指向编译错误!
编辑
我意识到无论是 ExecJSRuntimeerror
还是 aProgramError
似乎都无关紧要——在第一个应用程序中,从来没有给出行号,而在第二个应用程序中,总是有。