6

重複の可能性:
Google Closure Compiler でコンパイルされた jQuery

私はjQueryを使用しており、すべてのJSコードをapplication.jsファイルに持っています。「application.js」を Google Closure コンパイラで (詳細オプションを使用して) コンパイルすると、エラーや警告のない js ファイルが得られます。ただし、ページでファイルを使用できません。ページの読み込み時に「TypeError: 式 '$("div.tile").d' [未定義] の結果は関数ではありません」というエラーが表示されます。

私の質問は、jQuery を使用する js ファイルをコンパイルできますか?

4

3 に答える 3

16

jQuery の「extern」ファイルを指定して、js ファイルが jQuery を使用していることを指定する場合は、詳細モードを使用することもできます。このようにして、クロージャ コンパイラは JavaScript 内の jQuery 関数呼び出しを変更しません。

java -jar compiler.jar --compilation_level ADVANCED_OPTIMIZATIONS --js_output_file application.js --externs jquery-1.4.4.externs.js

jQuery extern ファイルの一部は、 http ://code.google.com/p/closure-compiler/source/browse/trunk/contrib/externs/ にあります。

于 2011-04-16T15:35:07.773 に答える
8

Closure コンパイラに最適化しないものを伝える必要があります。

externs_url パラメータを追加して、オンライン コンパイラ ( http://closure-compiler.appspot.com/home ) でこれを行います。オンライン コンパイラでコードを入力すると、これに似たヘッダーが自動的に追加されますが、デフォルトでは externs_url パラメータはありません。

// ==ClosureCompiler==
// @output_file_name default.js
// @compilation_level ADVANCED_OPTIMIZATIONS
// @externs_url https://closure-compiler.googlecode.com/git/contrib/externs/jquery-1.9.js
// ==/ClosureCompiler==

https://code.google.com/p/closure-compiler/source/browse/contrib/externs/で現在利用可能な extern ファイルを確認できます。ほとんどすべてのバージョンの jQuery があります。

ダウンロード可能な Java バージョンのコンパイラでこれを行うには、cli で --externs_url パラメータを渡すか、必要な extern ファイルをダウンロードして、Palmerlee の回答のように --externs パラメータでそのファイル名を渡します。

高度な最適化をオンにできない理由に興味がある場合は、http://code.google.com/closure/compiler/docs/api-tutorial3.htmlを読んでください。

于 2011-09-03T05:39:01.507 に答える
1

はい、jQuery ファイルを他のファイルに含めたい場合は。

はい、代わりにシンプルモードを使用する場合。

そうでなければ、いいえ。

于 2010-02-09T02:11:50.093 に答える