在我的grunt配置中,如果有一个变量,它定义了一个包含css文件的目录。现在我想配置一个grunt任务,将该变量的值插入到html文件中。 例如,我可以想象我有一个index.html文件,如下所示
<!doctype html>
<head>
<link rel="stylesheet" href="<% pathToCss %>/styles.css">
...
但我找不到能为我做到这一点的任务。 grunt taks的任何建议都可以为我做到这一点吗?
答案 0 :(得分:10)
我刚刚发现可以使用grunt.template完成,如下所示:
template: {
options: {
data: {
pathToCss: './css'
}
},
demo: {
files: [
{ '<%= ./output/index.html': ['<%= ./input/template.html'] }
]
}
},
在输入文件(template.html)中,您可以按如下方式定义'pathToCss':
<link rel="stylesheet" href="../../<%- pathToCss %>/styles.css">
但是,如果我查看documentation,我看不出这是记录在哪里了!
答案 1 :(得分:7)
我认为grunt-replace包是您正在寻找的。您可以读取外部文件并在patterns
定义中使用其值,如下所示:
replace: {
dist: {
options: {
patterns: [
{
match: '<% pathToCss %>',
replacement: '<%= grunt.file.read("conf/assets-dir.txt") %>'
}
]
}
}
}