有没有办法在Opal生成的javascript中显示Ruby行号

时间:2014-06-14 09:42:14

标签: source-maps opalrb

出于调试目的,我想在Opal生成的javascript文件中看到相应的Ruby Source位置。

有没有简单的方法来实现这个目标?我试过了

# config.ru
require 'bundler'
Bundler.require

run Opal::Server.new { |s|

  s.append_path 'public'
  s.append_path 'src'
  s.debug = true
  s.source_map = true

  s.main = 'application'

  s.index_path = 'index_opal.html'
}

这是我的申请文件

要求'数学'     要求'蛋白石'     要求'opal-jquery'

require 'consolelogger'
require 'harpnotes'
require 'abc_to_harpnotes'
require 'opal-raphael'
require 'opal-jspdf'
require 'opal-jszip'
require 'opal-abcjs'
require 'opal-musicaljs'
require 'raphael_engine'
require 'pdf_engine'
require 'controller'
require 'harpnote_player'
require 'text_pane'

puts "now starting zupfnoter"
puts "zupfnoter

我只能在源地图中看到此文件,但不能在'require'

中包含这些文件

我甚至可以在最后设置break数据到其他地方。

1 个答案:

答案 0 :(得分:1)

以下是如何设置正确提供源地图的机架的示例

https://github.com/opal/opal/tree/0-6-stable/examples/rack(蛋白石v0.6.x)


更新:问题似乎是您没有处于调试模式。

说明:当前的源映射实现不适用于连接资源,Sprockets本身不支持源映射,因此在连接期间不会保留它们。

使用Opal和Rack

进行链轮调试模式

要启用调试模式,您需要添加debug = true并在Opal :: Server中使用Erb index.html:

# config.ru

run Opal::Server.new do |s|
  s.append_path 'src'
  s.source_map = true
  s.main = 'application'
  s.index_path = 'index.html.erb'
  s.debug = true
end

然后在你的index.html.erb中,您需要使用帮助程序而不是硬编码的脚本标记:

<%# index.html.erb %>
…
<%= javascript_include_tag 'application' %>
…