Closure 编译器:由于输出文件中有许多 $jscomp 语句,大小增加
Closure Compiler: size increases because of many $jscomp statements in output file
到目前为止,closure compiler(java 版本)已经很好地减少了我的 js 文件。但最近我一直在尝试编译一个小的 service worker js 文件,发现编译后大小实际上 增加 。
我在 "minimised" 代码中发现了很多这样的语句:
$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol
我只是在编译中使用默认值:
$ java -jar compiler.jar service-worker.js > minified.js
在 code from here(在 "Service Worker's JavaScript" 部分)上尝试,文件大小从 2.6 KB 变为 7.6 KB!!
但是当我 运行 通过 online closure compiler app 相同的代码时,我得到一个 小得多 的文件,没有上述所有类型的声明。
如何从本地 java 版本的闭包编译器生成相同类型的输出,而没有所有的膨胀?
您看到的代码是 ES6 运行时 polyfill。如果你不需要它们,你可以通过设置 --rewrite_polyfills=false
标志来禁用它们的注入。
到目前为止,closure compiler(java 版本)已经很好地减少了我的 js 文件。但最近我一直在尝试编译一个小的 service worker js 文件,发现编译后大小实际上 增加 。
我在 "minimised" 代码中发现了很多这样的语句:
$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol
我只是在编译中使用默认值:
$ java -jar compiler.jar service-worker.js > minified.js
在 code from here(在 "Service Worker's JavaScript" 部分)上尝试,文件大小从 2.6 KB 变为 7.6 KB!!
但是当我 运行 通过 online closure compiler app 相同的代码时,我得到一个 小得多 的文件,没有上述所有类型的声明。
如何从本地 java 版本的闭包编译器生成相同类型的输出,而没有所有的膨胀?
您看到的代码是 ES6 运行时 polyfill。如果你不需要它们,你可以通过设置 --rewrite_polyfills=false
标志来禁用它们的注入。