grunt: how to replace paths in html file using grunt task

梦想的初衷 提交于 2020-01-19 23:30:49

问题


inside my grunt configuration if have a variable which defines a directory which contains a css file. Now I would like to configure a grunt task which insert the value of this variable into a html file. For example, I can imagine that I have an index.html file as follows

<!doctype html>
   <head>
      <link rel="stylesheet" href="<% pathToCss %>/styles.css">
      ...

But I cannot find a task which can do that for me. Any suggestions which grunt taks can do this for me ?


回答1:


I just found out that it can be done with grunt.template as follows:

template: {
        options: {
            data: {
                pathToCss: './css'
            }
        },
        demo: {
            files: [
                { '<%= ./output/index.html':  ['<%= ./input/template.html'] }
            ]
        }
    },

And in the input file (template.html) you define 'pathToCss' as follows:

<link rel="stylesheet" href="../../<%- pathToCss %>/styles.css">

However, if I look at the documentation, I don't see where this is documentated!




回答2:


I think the grunt-replace package is what you're looking for. You can read an external file and use its value in the patterns definitions like so:

replace: {
  dist: {
    options: {
      patterns: [
        {
          match: '<% pathToCss %>',
          replacement: '<%= grunt.file.read("conf/assets-dir.txt") %>'
        }
      ]
    }
  }
}


来源:https://stackoverflow.com/questions/20020981/grunt-how-to-replace-paths-in-html-file-using-grunt-task

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!