用 Grunt-Replace 替换 HTML 标签
Replacing a HTML tag with Grunt-Replace
我正在处理一个 grunt 文件。我们在本地使用我们的文件在 html 中工作,当我们将它们实施到我们的 CMS 中时,它们需要转换为 aspx。
我正在尝试将 <script scr=""></script>
的所有实例替换为 <imod:ScriptPlaceHolder id="#nameOfFile" runat="server" type="FileInclude" url="#pathToFile"></imod:ScriptPlaceHolder>
我正在使用 "grunt-replace":“^0.8.0。”此任务在默认和构建下注册。我试过使用正则表达式来匹配名称,而且我查看文档的时间太长了。这是我的带有替换的 grunt 文件的样子:
replace: {
dist: {
options: {
patterns: [
{
match: '/script src="/g',
replacement: function() {
'asp:PlaceHolder runat="server" url="';
}
}
]
},
files: [
{expand: true, flatten: true, src: ['<%= config.dist %>/index.html'], dest: 'dist/'}
]
}
},
你没有提到你目前得到的结果,所以我假设你看到的脚本标签只是被截断了或者 "undefined" 添加到脚本标签的剩余位。
我发现 http://www.regexr.com/ 对测试正则表达式很有用。
尝试将匹配更改为 - '/<script\ssrc=".+</script>/g'
此外,您的替换函数需要 return 一个值。显然,如果您要替换为静态字符串,那么您可以使用字符串作为参数。
在 Matthew Kime 的帮助下,我得以完成这项工作。在我的正则表达式中,我不得不搜索 2 个句点,因为我正在使用 grunt-rev 对我的文件进行版本控制。我还使用了去掉扩展名的文件名来动态命名文件。
这是我得出的结论。
// replace script tags to imod placeholders
replace: {
dist: {
options: {
patterns: [
{
match: /<script src=\"(.*\/)(.+?)\.(.+?)\.js\"><\/script>/g,
replacement: '<imod:ScriptPlaceHolder id="" type="FileInclude" url="..js" runat="server"></imod:ScriptPlaceHolder>'
}
]
},
files: [
{expand: true, flatten: true, src: ['<%= config.dist %>/index.html'], dest: 'dist/'}
]
}
},
我正在处理一个 grunt 文件。我们在本地使用我们的文件在 html 中工作,当我们将它们实施到我们的 CMS 中时,它们需要转换为 aspx。
我正在尝试将 <script scr=""></script>
的所有实例替换为 <imod:ScriptPlaceHolder id="#nameOfFile" runat="server" type="FileInclude" url="#pathToFile"></imod:ScriptPlaceHolder>
我正在使用 "grunt-replace":“^0.8.0。”此任务在默认和构建下注册。我试过使用正则表达式来匹配名称,而且我查看文档的时间太长了。这是我的带有替换的 grunt 文件的样子:
replace: {
dist: {
options: {
patterns: [
{
match: '/script src="/g',
replacement: function() {
'asp:PlaceHolder runat="server" url="';
}
}
]
},
files: [
{expand: true, flatten: true, src: ['<%= config.dist %>/index.html'], dest: 'dist/'}
]
}
},
你没有提到你目前得到的结果,所以我假设你看到的脚本标签只是被截断了或者 "undefined" 添加到脚本标签的剩余位。
我发现 http://www.regexr.com/ 对测试正则表达式很有用。
尝试将匹配更改为 - '/<script\ssrc=".+</script>/g'
此外,您的替换函数需要 return 一个值。显然,如果您要替换为静态字符串,那么您可以使用字符串作为参数。
在 Matthew Kime 的帮助下,我得以完成这项工作。在我的正则表达式中,我不得不搜索 2 个句点,因为我正在使用 grunt-rev 对我的文件进行版本控制。我还使用了去掉扩展名的文件名来动态命名文件。
这是我得出的结论。
// replace script tags to imod placeholders
replace: {
dist: {
options: {
patterns: [
{
match: /<script src=\"(.*\/)(.+?)\.(.+?)\.js\"><\/script>/g,
replacement: '<imod:ScriptPlaceHolder id="" type="FileInclude" url="..js" runat="server"></imod:ScriptPlaceHolder>'
}
]
},
files: [
{expand: true, flatten: true, src: ['<%= config.dist %>/index.html'], dest: 'dist/'}
]
}
},