javascript – 如何防止underscore.js模板创建不需要的空白行?

我正在使用Yeoman创建一个生成器,而Yeoman又使用underscore.js模板.
在给定的文件中,我有这个代码:

var
    <% _.each(requires, function(require) { %>
    <% if(require.shouldApply) { %>
    <%= _.camelize(require.name) %> = require('<%= require.name %>'),
    <% } %>
    <% }); %>
    mongoose = require('mongoose'),
    Schema = mongoose.Schema;

鉴于require.shouldApply有时是假的,我不希望生成空行.

因此,例如,输入需要:[{shouldApply:false,name:’zoo’},{shouldApply:false,name:’foo’},{shouldApply:true,name:’bar’}]我得到:

var
    zoo = require('zoo'), //note that the line below is blank

    bar = require('bar'), //I don't want the blank line above
    mongoose = require('mongoose'),
    Schema = mongoose.Schema;

有谁知道如何防止underscore.js模板创建这些不需要的空白行?

解决方法:

在JSP中,我们有时会使用(恼人的)将模板标记扩展到下一行的做法来防止这种情况.

它对于可读性并不理想,但它确实解决了“不需要的换行”问题.

例如:

<% if(require.shouldApply) { 
%><%= _.camelize(require.name) %> = require('<%= require.name %>'), 
<% } %>

在JSP中我们还有trimDirectiveWhitespaces和类似选项 – 这些选项并不完美,但确实有帮助.你的模板系统也可能有这样的东西.

上一篇:javascript – 无法获得grunt预处理来替换值


下一篇:javascript – Yeoman – 找不到任务“requirejs”