指定されたオブジェクトに関数(名前が変更された)が存在しないというエラーが発生し続けます。それを機能させるためのリリースや設定などはありますか?
3 に答える
Closure Compiler Advanced Mode を jQuery で使用する場合は、jQuery の externs ファイルを使用する必要があります。Extern ファイルは、これらが予約済みのメソッドであることをコンパイラに伝え、これらの引数を受け入れ、引数のデータ型はそのようにする必要があるため、メソッド名を縮小して引数のデータ型をそのようにチェックしないでください。
Google Developers hereによって作成された externs ファイルを取得できます。このファイルは、jQuery-1.4.3 用に生成されました。しかし、現在のところ、おそらく jQuery のどのバージョンでも動作します。新しく追加されたメソッドはそのファイルに含まれていない可能性があるため、externs ファイルに追加する必要があります。構文と同義語は非常に単純です。
また、追加のコンパイラ フラグを使用して、externs ファイルの場所をコンパイラに伝えることもできます。構文は次のようにする必要があります
--compiler_flags= "--externs=path/to/jquery.externs.js"
また、Closure Library のオンライン externs 抽出ツールであるこのツールを使用することもできます。
jQuery を extern としてコンパイラーに宣言する必要があります ...ただし、誰かが作成したかどうかはわかりませんが、 1.3.2 の extern ファイルがありましたが、 1.4 以降のバージョンは見たことがありません。
jQuery は、拡張モードの Closure Compiler と (まだ) 互換性がありません。そのメソッドチェーン構文は、実行速度を大幅に向上させるための仮想化のプロトタイプに非常に容易に役立つため、互換性を持たせることは非常に良いことであることに同意します。
実際、一般的な JavaScript ライブラリー (Closure Library 以外) の中で、Closure Advanced モードと互換性があるのは Dojo Toolkit だけです。