【问题标题】:How can I peek at intermediary files processed by asset pipeline?如何查看资产管道处理的中间文件?
【发布时间】:2013-03-19 09:34:24
【问题描述】:

我有 somefile.js.coffee.erb 文件,该文件由 Rails 资产管道处理。我的 ERB 代码返回了一些无法被 Coffee 解析的字符串,导致 SyntaxError 异常。我想查看生成的 somefile.js.coffee 文件,或者一般来说资产管道处理的任何中间文件。

我尝试检查 Sprockets,但没有成功:

environment = Sprockets::Environment.new
MyApplication::Application.config.assets.paths.each {|p| environment.append_path p}
rerb = environment['somefile.js.coffee.erb']
rerb.source #=> it's already preprocessed

或者查看 \tmp\cache\assets 但也只有预处理文件,另外还被指纹名称所掩盖。

也许有一种方法可以连接到资产管道我不知道如何..

为什么我需要 ERB?使用 KnockoutJS (https://github.com/dnagir/knockout-rails extended -> https://github.com/KrzysztofMadejski/knockout-rails) 生成具有匹配 Rails 模型的字段和验证的客户端模型存根。

我正在使用 Rails '~> 3.2.12',链轮 (2.2.2)。

编辑:我最终在### cmets 中注入了erb 代码,以便在coffeescript 文件仍在编译时偷偷查看生成的代码:

###
<%= somefun() %>
###

尽管我建议使用@Semyon Perepelitsa 答案,因为它会生成咖啡编译器看到的咖啡脚本文件。

【问题讨论】:

    标签: ruby-on-rails asset-pipeline sprockets


    【解决方案1】:

    只需暂时从文件扩展名中删除“咖啡”:somefile.js.erb。您将在 /assets/somefile.js 中看到它的中间状态,因为 CoffeeScript 不会处理它。

    【讨论】:

    • 答案越简单越好!谢谢你。我已经结束了自己使用 hard-cmets ### 并将 ERB 代码放入其中,但这更好,因为它会生成整个文件,因为它将被咖啡编译器看到。
    【解决方案2】:

    我想知道您是否可以将&lt;% binding.pry %&gt; 放在该行之前,然后乱来,直到您正确为止。从未在编译期间尝试过,也不要使用咖啡脚本。从理论上讲,只要您将gem pry 放入您的Gemfile 并首先运行bundle,它应该可以工作(或值得一试)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 2012-05-29
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多