【问题标题】:finding the line number of a coffescript error in rails在rails中查找咖啡脚本错误的行号
【发布时间】:2013-10-10 08:43:30
【问题描述】:

我正在尝试找到一种在 Rails 中调试咖啡脚本的好方法。我的资产配置设置是:

# Do not compress assets
config.assets.compress = false
# Expands the lines which load the assets
config.assets.debug = true

在执行rake assets:precompile 任务后,当我的coffeescript 文件(例如wepic.js.coffee.erb)出现错误时,我得到的唯一调试信息是错误类型和文件名:

rake aborted!
SyntaxError: unexpected TERMINATOR
(in /home/jtestard/projects/git/webdamsystem/app/assets/javascripts/wepic.js.coffee.erb)

有时这不足以快速发现错误,我试图通过行/列号获得更好的跟踪。有谁知道获取此类信息的方法?

【问题讨论】:

    标签: ruby-on-rails debugging coffeescript


    【解决方案1】:

    如果您安装了 NPM/NodeJS(和 npm install coffee-script -g),您可以尝试使用 coffee -c <filename> 进行编译以查看行号。 Textmate/Sublime 也有插件,您可以在其中使用组合键查看 coffescript 文件的编译输出,但它们也需要安装 NodeJS/NPM。

    【讨论】:

    • 好的,我试试。你知道这样做的任何原生 Rails 方式吗?这似乎是使用咖啡脚本的 Rails 开发人员普遍关心的问题
    • 不用预编译也能正常工作吗?您有一个 .erb 扩展名,这是否意味着您将 ruby​​ 变量注入到脚本中,并且它们在资产预编译时可用?
    【解决方案2】:

    SyntaxError: unexpected TERMINATOR 错误通常发生在 CoffeeScript 源文件中有 TAB 字符时。

    您可以像这样在终端中搜索制表符:$ grep $'\t' FILE_NAME

    找到带有 TAB 字符的文件后,用空格替换它们。

    您还需要设置源代码编辑器的首选项以使用 TABS 空格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 1970-01-01
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-19
      相关资源
      最近更新 更多