我想写一些东西(在Ruby中),它会自动将console.log()添加到我的javascript资产的每一行,然后再将其提供给用户。这个工具可以帮助我大大节省大型js文件的调试工作,节省时间并给我一个回溯。我知道rails有各种内置助手......也许是before_serve?我知道链轮在提供文件之前将它们混合在一起..
答案 0 :(得分:0)
以下是解决方案:
if Rails.env.development?
Sprockets::Server.module_eval do
alias_method :ok_response_orig, :ok_response
def ok_response(asset, env)
asset.instance_eval do
#The next string to be appended
@source += %{
\n;(function(){
console.log("Called from #{File.basename(@pathname)}");
})();
}
@length = Rack::Utils.bytesize(@source)
@digest = Digest::MD5.new.update(@source).hexdigest
end if asset.instance_eval{@pathname.to_s}.include?(".js") #You might want to add .coffee here
ok_response_orig(asset, env)
end
def etag_match?(*args)
true
end
end
end
享受。 附:仅在开发环境中使用它