javascript - grunt.registerMultiTask() 从字符串中删除变量

标签 javascript templates gruntjs task

我正在编写一个 grunt 插件,它必须处理任务中定义的模板。我遇到的问题是,即使在 grunt.template.process() 之前,模板中的变量也被删除了。

该任务的选项如下所示:

wrap: {
    html: {
        footer: '<script>require(["<%= filename %>"])</script>',
        src: ['templates/*.*'],
        dest: 'new_templates'
    }
}

任务本身的简化形式如下所示:

grunt.registerMultiTask('wrap', 'Blah-blah', function() {
    grunt.log.writeln(this.data.footer); // outputs "<script>require([""]); </script>"
});

Gruntfile in simplified form

最佳答案

Grunt 自动使用 <% %> 扩展模板调用任务之前在其配置中添加分隔符,请参阅 http://gruntjs.com/configuring-tasks#templates .

因此,如果您想按原样获取模板字符串,一种解决方案是在配置字符串中使用自定义分隔符(例如 [%{% ),然后在 grunt.template.process 中使用自定义分隔符。调用(请参阅 http://gruntjs.com/api/grunt.template#grunt.template.processhttp://gruntjs.com/api/grunt.template#grunt.template.adddelimiters )

关于javascript - grunt.registerMultiTask() 从字符串中删除变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31741813/

相关文章:

c++ - 将模板传递给 boost 函数

c++ - 为什么 std::async 不能与接收抽象类引用作为参数的函数一起使用?

javascript - 防止 Google StreetView Javascript API 返回自定义全景图

javascript - onclick 未更新。即使使用 .onclick ="hideList()"后仍显示旧值;

javascript - 如何使用包含斜杠字符的参数?

gruntjs - 使用 Grunt 和 Uglify - 观看时;编译多次(错误?)

javascript - grunt-closure-tools : ERROR - Parse error. 标识符是保留字

javascript - 在 JavaScript 中引用 Event 对象

c++ - 如何访问可变成员?

javascript - 如何使用 urequire 嵌入依赖项