Javascript JS函数名压缩

Javascript JS函数名压缩,javascript,minify,Javascript,Minify,我似乎找不到执行函数名压缩的JS迷你程序。例如,给定以下伪代码: //non pure function function test() { //do some computations... return <whatever>; } alert(test()); //非纯函数 功能测试(){ //做一些计算。。。 返回; } 警报(test()); 然后,例如,将缩小为: function t(){//do some computations... return

我似乎找不到执行函数名压缩的JS迷你程序。例如,给定以下伪代码:

//non pure function
function test() {
   //do some computations...
   return <whatever>;
}

alert(test());
//非纯函数
功能测试(){
//做一些计算。。。
返回;
}
警报(test());
然后,例如,将缩小为:

function t(){//do some computations... return <whatever>}alert(t());
函数t(){//进行一些计算…返回}警报(t());

到目前为止,我还没有发现任何JS工具可以进行这种压缩。有人知道吗?

当然知道!您可以使用任务运行程序(即咕噜声或咕噜声)来协助,但您所描述的过程通常被定义为“丑陋”或“扭曲”JS。退房或开始


编辑:根据此答案上的注释,不需要使用任务运行程序,因为您可以自己使用。

当您使用UglifyJS时,它不会损坏顶级名称或全局范围可用的名称

如果在命令行中打开-mt或--mangle toplevel标志,仍然可以实现这一点,如下所示:

以下是我在您提供的演示链接中发布的一些代码:

function longfunctionname(a) {
  return function reallylongfunctionname(b) {
    return a + b;
  };
}
以下是未启用顶级损坏的损坏代码:

function longfunctionname(n){return function u(n){return n}}
正如您所看到的,顶层函数没有损坏,但内部函数是


到这里阅读更多内容:

编写不污染全局空间的代码是一个好习惯。通过包装在匿名函数中,代码将缩小,并且不会与其他全局引用冲突

(function (){
   function test() {
    //do some computations...
    return "something";
   }
   alert(test());
})();
如果使用--mangle运行UglifyJs,输出将如下所示

!function(){function t(){return"something"}alert(t())}();

我曾经得到过生成的UglifyJs代码

UglifyJs是一个很好的工具one@JordanHendrix是的,但从我所看到的来看,它并没有压缩函数名…它是压缩的,你必须打开mangling…下面的答案也是一样。我刚刚用这个在线工具()进行了测试,甚至选中了magle选项,函数名不会被压缩请看下面我的答案您不需要任务运行程序,它有助于运行多个任务,但不需要良好的调用。更新答案。那么,为什么在uglifyjs的在线演示工具上没有压缩函数名(选中mangle选项)@LaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLaLa!