YUI JS minifier乱码

时间:2013-11-18 09:05:38

标签: yui obfuscation bundletransformer

我在asp.net MVC 4项目中使用BundleTransformer.Yui.Minifiers.YuiJsMinifier,但我认为这是YUI压缩器bug ...

...
var varName='...';
alert(varName); //alert('...')
            $.ajax({
                url: url,
                success: function (t, s) {
alert(varName); //alert(t);
}

当BundleTrasformer缩小&使用YUI压缩器变量varName变为t来模糊这段代码,并且函数参数t保持为t,所以varName得到的覆盖用t ... 结帐注释警告... 我的问题是我应该更改压缩器,还是将所有一个和两个字母变量重命名为更长的变量?难道我做错了什么? 如果我只改变一行代码,一切都好,所以我很确定它是YUI压缩器bug

...
var varName='...';
alert(varName); 
            $.ajax({
                url: url,
                success: function (data, s) {
alert(varName); 
}

PS 我知道有一个字母变量名称是不好的做法,但它仍然是YUI压缩器bug ... PPS: 我在succes函数中使用了eval。 (知道这也不是好习惯,但是,YUI压缩器不应该破坏代码:/)

1 个答案:

答案 0 :(得分:0)

varName变量是全局变量,因此不会处理它的名称。

您需要将其设为本地。为此,将代码包装在IIFE(立即调用的函数表达式)中:

(function(){
    ...
    var varName='...';
    alert(varName); 
                $.ajax({
                    url: url,
                    success: function (data, s) {
    alert(varName); 
    }
})();