【问题标题】:UglifyJS to transform javascript codeUglifyJS 转换 javascript 代码
【发布时间】:2013-07-28 11:29:05
【问题描述】:

我是第一次尝试使用 UglifyJS。我想用 UglifyJS 转换下面的代码

function someFn(){
        var someVar="test";    
        if(browser=="IE7"){
        ....
        console.log("something");
        console.log("somethingelse");
        .....
        }
        else{
        ....
        console.log("nothing");
        console.log("nothingelse");

        .....

        }
}

产生以下输出

function someFn(){
        var someVar="test";
        ....
        console.log("something");
        console.log("somethingelse");
        .....
}

我尝试过的如下

if (node instanceof UglifyJS.AST_If){
return node.body;
}

但这给出了以下输出

function someFn(){
                var someVar="test";
              {
                ....
                console.log("something");
                console.log("somethingelse");
                .....
               }
        }

【问题讨论】:

  • 除了额外的块(2个字符)之外,两者之间没有任何区别。
  • 你可以注意到没有 else 块,也应该删除 if 条件..我的整个想法是如果我找到与 IE7 匹配的 if 条件,则使代码特定于 IE7..hope我很清楚..你也可以看到我得到了“{”大括号
  • 输出中没有if 或相应的else 块,如图所示。唯一的区别是一对牙套
  • 是的,你是对的.. 我无法通过 UglifyJS 移除那些大括号
  • @Jan Dvorak 有什么解决办法吗?

标签: javascript abstract-syntax-tree uglifyjs


【解决方案1】:

UglifuJS 提供了如下的方法

return UglifyJS.MAP.splice(node.body.body);

上面的代码将删除那些多余的大括号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-20
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多