0

Mootools ライブラリに基づく JS コードの一部をコンパイルしたいと考えています。

すべての変数の名前を変更したいのですが、呼び出されて定義された関数の名前は変更しません。呼び出されるもののほとんどは mootools からのものであり、定義されているものは外部から呼び出されるためです。

コンパイルするコード:

// textnum is safe to be renamed, all variables are
textnum = 0;
// loadText can't be ranmed because is called from outside
function loadText()
{
    textnum++;
    document.body.setStyle("font", "12px");
    // here setSyle can't be renamed
}

変数のみの名前を変更するように指示する方法はありますか?

これがオープン ソース プロジェクトであることがわかりました。機能にまったく触れないように操作する方法はありますか!?

4

1 に答える 1

3

コンパイルするコードを名前空間または無名関数ラッパーに配置し、単純な最適化を使用します。これにより、すべての内部変数と関数の名前が変更されますが、 などのグローバル変数と関数の名前は変更されませんsetStyle

名前を変更してはならない関数は、グローバル スコープで定義されます。これは、externs と exports を定義するのに比べればそれほど面倒ではありません。

于 2012-12-15T14:29:38.287 に答える