[英]How to minify nested properties
我正在使用terser-js
來縮小我的代碼。
輸出:
a.prototype.a = ...
a.prototype.b = ...
a.prototype.c = ...
我想要的是:
var h = a.prototype
h.a = ...
h.b = ...
h.c = ...
請注意,我無法手動編寫它,因為輸入是從TypeScript
生成的。
terser-js似乎沒有這樣的功能,它實際上是不合理的。 這兩段代碼實際上可以表現不同( getter屬性可以在每次訪問時返回不同的值),並且在大多數用例中生成的代碼實際上會更大。
我知道第一個例子看起來更大,並且未壓縮它,但是一旦用gzip之類的東西壓縮(如果你關心文件大小,你最好使用gzip,就像大多數服務器那樣),重復的數據很容易壓縮到壓縮字典中,並且生成的壓縮數據實際上小於對象是別名的情況。
一些minifiers實際上用於支持類似於你所描述的各種功能(特別是Closure Compiler),但開發人員后來意識到它實際上是適得其反並刪除了這些功能。
為了說明這種行為,我創建了這兩個文件:
a.js
:
a.prototype.a = 'testing 1';
a.prototype.b = 'testing 2';
a.prototype.c = 'testing 3';
b.js
:
var h = a.prototype;
h.a = 'testing 1';
h.b = 'testing 2';
h.c = 'testing 3';
用gzip壓縮后查看結果:
$ gzip -k -9 *.js
$ ls -l
total 32
-rw-r--r-- 1 user group 87 Dec 22 15:50 a.js
-rw-r--r-- 1 user group 69 Dec 22 15:50 a.js.gz
-rw-r--r-- 1 user group 78 Dec 22 15:50 b.js
-rw-r--r-- 1 user group 75 Dec 22 15:50 b.js.gz
a.js.gz
文件實際上是最小的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.