Javascript 如何从已编译的Eco模板中删除不必要的空格

Javascript 如何从已编译的Eco模板中删除不必要的空格,javascript,coffeescript,sprockets,eco,Javascript,Coffeescript,Sprockets,Eco,Supose我有一个简单但相当嵌套的Eco模板: <div class="example"> <% for thing, i in @things: %> <div class="nested"> <% if i % 2 == 0: %> This block is fairly nested. <% end %> </div> <% end %>

Supose我有一个简单但相当嵌套的Eco模板:

<div class="example">
  <% for thing, i in @things: %>
    <div class="nested">
      <% if i % 2 == 0: %>
        This block is fairly nested.
      <% end %>
    </div>
  <% end %>
</div>
。。。JS压缩器无法删除这些内容,因为它们不是JS空格(但在呈现时变成HTML空格)。我知道Eco以这种方式编译模板以保持其输出良好的缩进,这在开发环境中很酷,但在生产环境中就不那么酷了:D

有没有办法从
eco.precompile
输出中删除这些不必要的空格


顺便说一句,我正在使用链轮来编译、连接和服务这些资产。

如果Eco尊重XML注释,这可能会有所帮助:

<div class="example">
  <% for thing, i in @things: %><!--
    --><div class="nested"><!--
      --><% if i % 2 == 0: %>
        This block is fairly nested.
      <% end %>
    </div>
  <% end %>
</div>

这个块嵌套得很好。

不过,你必须在这种丑陋与放弃缩进之间做出选择。

如果你这样写会怎么样

<div class="example">
  <% for thing, i in @things: %>
    <div class="nested"><%= "fairly nested" if i % 2 is 0 %></div>
  <% end %>
</div>


正如ECO模板中所建议的,在关于空白的注释下。

我没有使用ECO,也没有立即尝试任何东西的环境。你能看到在
中包含不需要的空格是否有帮助吗?谢谢@AtesGoral的建议,但不幸的是,这没有多大帮助,因为在JS输出中看到的空格是由于模板中使用的缩进(我编辑了我的问题,对此进行了评论)。在添加不必要的HTML注释块之前,我宁愿删除soruce模板的缩进,但这远远不是理想的解决方案(可能有一种方法可以在.eco->.js编译时删除它们)。我将把我的意思作为一个答案。一个选项是通过代码< >修剪来破解/覆盖并制作<代码> CuxtStult管道。HTML注释也包含在JS输出和空白区中。Eco借用了ERB的注释语法:“”。这些注释不会出现在JS输出中,但是用注释替换缩进对我来说是不可能的,这不是我想要的=D
<div class="example">
  <% for thing, i in @things: %><!--
    --><div class="nested"><!--
      --><% if i % 2 == 0: %>
        This block is fairly nested.
      <% end %>
    </div>
  <% end %>
</div>
<div class="example">
  <% for thing, i in @things: %>
    <div class="nested"><%= "fairly nested" if i % 2 is 0 %></div>
  <% end %>
</div>