在grunt-php2html之后编辑js文件的src字符串
Edit src strings of js files after grunt-php2html
我正在使用 grunt-php2html 将我的开发 *.php
文件编译成 'client-ready' *.html
文件并且运行良好。
我倾向于在开发版本 (php) 中使用未缩小的文件,在 html 中使用丑化文件。我通过 grunt 动态地丑化,所以我的文件得到 .min.
附加到他们的文件名。
默认情况下,生成的 html 文件的文件名中仍然没有 .min.
,因此,我必须通过选项将 .js
替换为 .min.js
,例如所以:
php2html: {
options: {
process: function(response, callback) {
callback(response.replace(/\.js/g, '.min.js'));
}
}
}
但是我看到了这种解决方案的缺点,因为字符串 .js
可能不仅出现在 script
标记的 src
属性中,而且还出现在正文中,当然我希望它保持不变。
所以我的问题是,我如何编写一个正则表达式,以便它只针对 real script
标签。如果有人有任何建议或替代解决方案,我将非常高兴。
与其寻找复杂的 regular expression
,我建议具体一点,并利用所有缩小的 JS 文件所在的 JS 文件夹的路径。
这可能是一个例子:
var response = 'some .js here ... <script src="js/path/something.js"></script> another .js here';
var res = response.replace(/(src=\"js\/path\/\w*)\.js/g, '.min.js');
注意
的用法,它从正则表达式中获取第一组(括在括号中)的值到 keep/maintain。
我正在使用 grunt-php2html 将我的开发 *.php
文件编译成 'client-ready' *.html
文件并且运行良好。
我倾向于在开发版本 (php) 中使用未缩小的文件,在 html 中使用丑化文件。我通过 grunt 动态地丑化,所以我的文件得到 .min.
附加到他们的文件名。
默认情况下,生成的 html 文件的文件名中仍然没有 .min.
,因此,我必须通过选项将 .js
替换为 .min.js
,例如所以:
php2html: {
options: {
process: function(response, callback) {
callback(response.replace(/\.js/g, '.min.js'));
}
}
}
但是我看到了这种解决方案的缺点,因为字符串 .js
可能不仅出现在 script
标记的 src
属性中,而且还出现在正文中,当然我希望它保持不变。
所以我的问题是,我如何编写一个正则表达式,以便它只针对 real script
标签。如果有人有任何建议或替代解决方案,我将非常高兴。
与其寻找复杂的 regular expression
,我建议具体一点,并利用所有缩小的 JS 文件所在的 JS 文件夹的路径。
这可能是一个例子:
var response = 'some .js here ... <script src="js/path/something.js"></script> another .js here';
var res = response.replace(/(src=\"js\/path\/\w*)\.js/g, '.min.js');
注意 的用法,它从正则表达式中获取第一组(括在括号中)的值到 keep/maintain。