我正在使用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和类似选项 – 这些选项并不完美,但确实有帮助.你的模板系统也可能有这样的东西.