加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – ExecJS咖啡脚本不显示编号错误的行号(Rails资

发布时间:2020-12-16 19:25:49 所属栏目:百科 来源:网络整理
导读:在我的一个Rails应用程序中,ExecJS没有显示coffeescript编译错误的行号.我的编译错误信息将如下所示: ExecJS::RuntimeError in Referrals#newShowing ~/MyApp/app/views/layouts/application.html.erb where line #6 raised:SyntaxError: unexpected IDENTI
在我的一个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似乎并不重要 – 在第一个应用程序中,没有给出行数,在第二个应用程序中总是存在.

解决方法

我想出来 – 这是由于咖啡脚本源的宝石版本.在给出行号的应用程序中,bundle show给出了1.4.0的咖啡脚本源,而另一个应用程序的咖啡脚本源版本为1.6.1.

我没有注意到这一点,因为咖啡轨宝石并没有严格规定这种依赖(在我的Gemfiles中,我使用的是宝石’咖啡轨’,’3.2′).为了解决这个问题,只需明确指定coffee-script-source gem版本:

gem 'coffee-rails','3.2.2'
gem 'coffee-script-source','1.5.0'

并捆绑更新咖啡脚本源.

希望这可以帮助任何可能遇到这种差异的人.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读