javascript - Grunt 用文件内容替换 HTML

标签 javascript gruntjs

我有我的 html 的生产版本,我希望编译我的(个人)模板并将它们放入 html 文件的生产版本中。

到目前为止,concat 非常适合构建单个模板文件,但我想采用如下代码:

<html>
    <head></head>
    <body>
        {{templates}}
    </body>
</html>

...然后将 {{templates}} 替换为 concat 模板文件中的源代码。我发现了一些可以替代的 grunt 插件,但它们似乎都不允许我这样做

最佳答案

我最终写了一个多任务来处理它:

grunt.registerMultiTask('integrateTemplate', 'Integrates compiled templates into html file', function () {
    var data = this.data,
        path = require('path'),
        src = grunt.file.read(data.src),
        dest = grunt.template.process(data.dest),
        templates = grunt.file.read(data.compiledTemplate),
        out;

    out = src.replace(/\{\{templates\}\}/g, templates);

    grunt.file.write(dest, out);
    grunt.log.writeln('Template integrated');

});

prod_template.html 看起来像这样:

<html>
    <head>
    </head>
    <body>
         {{templates}}
    </body>
</html>

然后我就调用它:

integrateTemplate: {
  main: {
    compiledTemplate: '<%= templates.main.dest %>', // Compiled template src
    src: 'prod_template.html',
    dest: 'index.html'
  }
}

不过,如果有更好的建议(我相信有),我很乐意听听。

关于javascript - Grunt 用文件内容替换 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19079013/

相关文章:

javascript - 转换模式中的整数 (1>=5, 6>=10, 11>=15 ...)

javascript - 使用 Ramda 创建对象

javascript - 您如何在 Grunt.js 中查看多个文件,但仅在更改的文件上运行任务?

在 Windows 上安装 Node.js 和 Grunt

angularjs - angularjs/gruntjs 应用程序的企业包存储库?

javascript - meteor react : User Object undefined at initial page load

javascript - D3、嵌套追加和数据流

javascript - knockout中 "with"绑定(bind)如何实现分页

javascript - 如何在不断压缩 css/javascript 的同时使用 Grunt

javascript - 什么是标准的预处理/后处理工作流程?