在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。