出于调试目的,我想在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数据到其他地方。
答案 0 :(得分:1)
以下是如何设置正确提供源地图的机架的示例
https://github.com/opal/opal/tree/0-6-stable/examples/rack(蛋白石v0.6.x)
更新:问题似乎是您没有处于调试模式。
说明:当前的源映射实现不适用于连接资源,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' %>
…