1

我正在尝试获取一个简单的 UglifyJS (v2.3.6) 示例来处理压缩。

具体来说,“未使用”选项,如果从未使用过,变量和函数将被剥离。

这是我在命令行上的尝试:

echo "function x() { return 1; }; function y() { return 2; }; y();" | uglifyjs -c hoist_funs=true,hoist_vars=true,unused=true

如您所见,从未使用过函数“x”。

然而,它并没有从结果中被剥夺:

function x(){return 1}function y(){return 2}y();

谁能看到我做错了什么?

4

1 回答 1

2

在您的示例中,函数xy是全局函数,可以被其他脚本使用:

function x() {
  return 1;
};
function y() {
  return 2;
};
y();

但是,您可以使用闭包来定义范围:

(function(){
  function x() {
    return 1;
  };
  function y() {
    return 2;
  };
  y();
})();

现在x不在其范围内使用,并且可以毫无顾虑地删除它。

于 2013-06-05T10:27:49.863 回答