コードサイズが最も重要なプロジェクトに取り組んでおり、Google Closure Compiler の ADVANCED_OPTIMIZATIONS を使用してコードをコンパイルしています。プロトタイプを使用して、特定の組み込みオブジェクト (Date や Number など) を拡張する必要があります。これらの拡張機能を再利用可能なライブラリにパッケージ化し、実際にコードで使用されるものだけをコンパイラに含めたいと考えました。
これまでに思いついた唯一の方法は、コンパイラ フラグとして個別に切り替えることができる '@defined' 定数でそれぞれをラップすることです。他のすべての方法では、これらの拡張機能がすべて含まれているか、まったく含まれていないようです。これはかなり扱いにくいです、より良い方法はありますか?
明確にするために:
ライブラリ ファイル内
Number.prototype.foo = function() { ... }
Number.prototype.bar = function() { ... }
Number.prototype.something = function() { ... }
コード内
function somefunc() {
25.foo();
...
41.foo();
}
Number.bar と Number.something がプライマリ ソースで使用されていないため、コンパイルされたコードに表示されることは望ましくありません。