私はjQueryプラグインを使用しており、MicrosoftAjaxMinifierを介して実行しています。私のスクリプトは私にとってはうまく機能しますが、今はこのプラグインで問題が発生しています。問題は、プラグインが文字列を使用してその名前で関数を呼び出すことです。
var s = (getCachedSortType(table.config.parsers, c) == "text") ? ((order == 0) ? "sortText" : "sortTextDesc") : ((order == 0) ? "sortNumeric" : "sortNumericDesc");
「sortNumeric」と「sortNumericDesc」に注意してください。これにより、次の関数が呼び出されます。
function sortNumeric(a, b) {
return a - b;
}
function sortNumericDesc(a, b) {
return b - a;
}
これは、これらの関数が呼び出される唯一の場所であるため、IDE VS2010は、関数がどこからも呼び出されているとは見なしません...これらは上記のコードを介して条件付きで実行されます。
**ここに問題があります**
これが縮小されると、関数の文字列名は残りますが、参照されることはないため、関数は削除されます。
これを行わないように設定ミニファイアを調整する方法はありますか?
関数の名前が変わるのも見たので
function testFunctionName(a,b)
になります
function a
これは私のような状況でも問題を引き起こします...このような関数名をハードコーディングするのは悪いコード設計であることを私は知っていることに注意してください。私が言ったように、それは私が使用しているプラグインです。文字列ではなく関数を正しく呼び出すソリューションを受け入れますが、プラグインを変更することを常に躊躇しています。