grunt: how to replace paths in html file using grunt task
10,715
Solution 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!
Solution 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") %>'
}
]
}
}
}
Author by
Jeanluca Scaljeri
Updated on July 24, 2022Comments
-
Jeanluca Scaljeri almost 2 years
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 ?
-
Luke Skywalker about 8 yearsIs this answer reference the tasks grunt-template, which itself uses grunt.template ? Because you can't do this with just grunt.template