Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
最佳javascript编译器/缩微器_Javascript_Compiler Construction_Minify - Fatal编程技术网

最佳javascript编译器/缩微器

最佳javascript编译器/缩微器,javascript,compiler-construction,minify,Javascript,Compiler Construction,Minify,我记得在github上看到了一个新的javascript编译器/minifier,它应该比google的闭包编译器更好。不幸的是,我记不起它的名字,也找不到它了。也许有人能帮我?:) 谢谢, 科林可能吗?它是jQuery项目当前正在使用的迷你程序 看看这些。AFAIK Closure Compiler的高级模式是唯一一款需要全局删除死代码(也称为树抖动)和优化的游戏。这就是像emscripten和ClojureScript这样的项目以及Dart javascript translator使用它的

我记得在github上看到了一个新的javascript编译器/minifier,它应该比google的闭包编译器更好。不幸的是,我记不起它的名字,也找不到它了。也许有人能帮我?:)

谢谢, 科林可能吗?它是jQuery项目当前正在使用的迷你程序


看看这些。

AFAIK Closure Compiler的高级模式是唯一一款需要全局删除死代码(也称为树抖动)和优化的游戏。这就是像emscripten和ClojureScript这样的项目以及Dart javascript translator使用它的原因。

请参阅src的统计信息:

比较一下Douglas Crockford和Yahoo!尤伊

Minifier           | Bytes   |% of original| gz Bytes | gz % original
None               | 428,264 |    100%     |   91,750 |     100%
JSMin              | 249,372 |     58%     |   57,338 |     62%
YUI                | 235,214 |     55%     |   55,990 |     61%
Closure (STANDARD) | 219,446 |     51%     |   53,515 |     58%
Closure (ADVANCED) | 166,774 |     39%     |   47,372 |     52%
闭包将Javascript小型化器的概念更进一步。它通过进行真正的编译来删除未使用的代码,内联变量并重写代码使其尽可能小


仅供参考,您可以在此处访问Google Closure Compiler UI这是一个老问题,但我遇到了一些新信息,希望与大家分享。我在GitHub上发现了一个名为RegPack的专用迷你程序。我之所以说专门化,是因为它旨在优化小文件(1KB-4KB),并使用JavaScript中的画布、WebGL和音频组件。结果相当惊人,但也与您正在编写的JavaScript类型有关


注意到这一点,我刚刚在标准模式下对我编写的库运行了闭包编译器,以将输出与我通过Grunt使用的UglifyJS进行比较。基本代码是20KB,Uglifier和闭包编译器(std模式)都是10KB。对于大多数用例,我认为这已经足够好了。关闭高级模式仅将其减少到9KB。对于边缘情况-腹板比例-小10%是合适的。但是,考虑到GZIP压缩将在我的经验中将文件大小减少60-80%,所以如果使用GZIP,使用高级模式的10%减少只会节省2%-4%以上的标准模式。2-4%在web规模上是有价值的,但对于大多数开发人员来说,可能不值得引入潜在的问题

丑陋只能与闭包编译器的简单模式相比较。它不能用Closure的高级模式做可能的事情。在我看来,高级模式正是闭包编译器的强大之处。高级模式的问题在于,你必须专门为它编写代码,它不仅仅在javascript上工作。Dart现在有自己的优化器,但最初的DartC编译器在后端使用了闭包编译器。虽然不是小型编译器,但是高级模式的作用远不止于缩小尺寸:内联变量、删除死代码、彻底混淆所有内容、展平对象。。。如果您的代码足够长,那么好处是无价的。如果是一个从头开始的项目,那么在编写时考虑闭包编译器高级模式约束并不是那么困难。