1

出于调试目的,我想在 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'
}

这是我的申请文件

需要“数学”需要“蛋白石”需要“蛋白石-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”中看到

我什至可以在最后的 puts 语句中设置断点,但别无他处。

4

1 回答 1

1

这是一个关于如何设置正确提供源映射的机架的示例

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


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

说明:当前的 sourcemaps 实现不适用于串联资产,并且 Sprockets 本身不支持 sourcemaps,因此它不会在串联期间保留它们。

使用 Opal 和 Rack 的 Sprockets 调试模式

要启用调试模式,您需要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' %>
…
于 2014-07-11T12:43:47.993 回答