【发布时间】:2013-04-28 11:43:59
【问题描述】:
在我的一个 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)
请注意,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 似乎都无关紧要——在第一个应用程序中,从来没有给出行号,而在第二个应用程序中,总是有。
【问题讨论】:
-
我在 1.6.2 上,遇到了这个问题。
-
@Narfanator 你看到我的回答了吗?
-
是的;我花了一分钟;我也将我的设置为 1.5.0,现在很好。我很惊讶功能丢失了。它是开发的核心。
标签: ruby-on-rails coffeescript asset-pipeline execjs