Gruntjs更改下划线模板分隔符

时间:2013-05-22 08:10:56

标签: javascript node.js underscore.js gruntjs

我正在尝试生成一个JSP页面,因为JSP使用的模板分隔符与下划线使用的模板分隔符相同。

查看文档 - > https://github.com/gruntjs/grunt/wiki/grunt.template#wiki-grunt-template-setDelimiters我可以看到他们有这个功能

grunt.template.addDelimiters(name, opener, closer)

两个问题:

  1. 我在哪里称这个功能?
  2. 我是否可以仅为grunt.template.process()更改分隔符(我有多个,而对于其他非.jsp模板,默认分隔符很好)?
  3. 感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:8)

grunt.template.process

的文档中的

默认模板分隔符为< %%>但如果options.delimiters设置为自定义分隔符名称,则将使用这些模板分隔符。

这基本上意味着您可以使用之前添加的分隔符的名称调用grunt.template.process。

e.g。如果你想在一个应该完成工作的处理步骤中使用方括号作为分隔符:

// first add the new delimiters which you want to use
grunt.template.addDelimiters('square-brackets', '[', ']');

//  and use it
grunt.template.process(template, {delimiters: 'square-brackets'});

// and use it with the default delimiters (named 'config')
grunt.template.process(template);

答案 1 :(得分:2)

我有完全相同的问题。 JSP使用<%=%>替换的标签,也被grunt使用。 添加了一行以覆盖" https://github.com/gruntjs/grunt/blob/master/lib/grunt/template.js"

中应用的默认设置

这对我有用:

// REPLACE the default 'config' delimiters
grunt.template.addDelimiters('config', '{%', '%}');

grunt.initConfig(
    { .... });

分隔符名称' config'必须完全匹配。