有没有办法在服务之前制作Ruby编辑.js文件?

时间:2015-02-18 13:06:12

标签: javascript ruby-on-rails ruby

我想写一些东西(在Ruby中),它会自动将console.log()添加到我的javascript资产的每一行,然后再将其提供给用户。这个工具可以帮助我大大节省大型js文件的调试工作,节省时间并给我一个回溯。我知道rails有各种内置助手......也许是before_serve?我知道链轮在提供文件之前将它们混合在一起..

1 个答案:

答案 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

享受。 附:仅在开发环境中使用它