0

GoogleクロージャコンパイラAPIサービスを使用する基本的なフローを理解するのに問題があります。私はいくつかの質問で解雇します:

  1. コンパイルするために送信するファイルのリストにクロージャのbase.jsを含めることになっていますか?
  2. deps.jsは大きすぎて送信できません。自分で含めることになっていますか、それともコンパイラサービスは独自のコピーを使用しますか?
  3. コンパイラーの機能の1つは、「require」ステートメントを解析し、出力に必要なコードを含めることであると私は理解していました。たとえば、オンラインUIツールにアクセスすると、それらが提供し、入力ボックスに次のように入力します。

    goog.require("goog.dom");
    goog.dom.getElement("test");
    

そして「コンパイル」を押すと、このスニペットを実行するのに十分なグーグルクロージャーコードが返されると思います。代わりに、同じものを取り戻します(空白を差し引いたもの)。何がわからないの?

そして最後に、グーグルのコンパイラサービスはあなたが送るファイルに200kのサイズ制限を持っています。私はMinifyと呼ばれるPHPパッケージを使っています。それはあなたが一度にそしておそらくサービスを通して送られるファイルのリストを送ることを可能にしますこれは、グーグルがあなたが200kの制限に対処することを期待する方法です。コンパイラは、たとえば、プライベート変数がどこでもパブリックとしてアクセスされていないことをチェックすることになっています。これは、ファイルで定義されたクラスを確認するために、リスト内のすべてのファイルの知識が必要であることを意味しているようです。 AはファイルBで違反されていません。これは事実ですか?サービスは、解析された各ファイルを何らかの形で記憶し、メモリに保持し、すべてをクロスチェックしますか?それとも私の理解はまだ欠陥がありますか?

みんなありがとう!

4

2 に答える 2

2

「URLの追加」のドロップダウンから「クロージャーライブラリ」を選択すると、構成に次の情報が追加されます。

// @ use_closure_library=true

これにより、ウェブサービスに、closure-library自体が満たすことができる「goog.require」のソースが含まれるようになります。goog.requiresのいずれかが独自のコードで満たされる必要がある場合は、URLを手動で含める必要があります。

ある時点で、MichaelBolinのPlovrプロジェクトが役立つ独自のコンパイルサービスを実行したいと思うかもしれません。

http://code.google.com/p/plovr/

于 2011-08-01T14:59:16.107 に答える
0

ShorelineというGoogleClosureプロジェクトテンプレートを作成しました。これには、Closureプロジェクトをローカルで作成、テスト、およびコンパイルするために必要なすべてのものが含まれています。コードサイズの制限や稼働時間の心配はありません。

于 2011-10-03T14:03:17.297 に答える