JS函数名称压缩

JS function names compression

本文关键字:压缩 函数 JS      更新时间:2024-06-28

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

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

然后,例如,会被缩小为:

function t(){//do some computations... return <whatever>}alert(t());

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

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

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

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

function longfunctionname(a) {
  return function reallylongfunctionname(b) {
    return a + b;
  };
}

以下是未打开顶级损毁的损毁代码:

function longfunctionname(n){return function u(n){return n}}

正如你所看到的,顶级功能没有被破坏,但内部功能是

点击此处阅读更多信息:http://lisperator.net/uglifyjs/

当然!您可以使用任务运行器(即Grunt或Gulp)来提供帮助,但您所描述的过程通常被定义为"丑化"或"损毁"JS。看看gullow uglify或grumb contrib uglify开始吧。

编辑:根据对这个答案的评论,使用任务运行器是不必要的,因为你可以单独使用UglifyJS。

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

(function (){
   function test() {
    //do some computations...
    return "something";
   }
   alert(test());
})();

如果你用--mangle运行UglifyJs,输出将看起来像这个

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

我曾经https://skalman.github.io/UglifyJS-online/获取生成的UglifyJs代码