GoogleクロージャコンパイラAPIサービスを使用する基本的なフローを理解するのに問題があります。私はいくつかの質問で解雇します:
- コンパイルするために送信するファイルのリストにクロージャのbase.jsを含めることになっていますか?
- deps.jsは大きすぎて送信できません。自分で含めることになっていますか、それともコンパイラサービスは独自のコピーを使用しますか?
コンパイラーの機能の1つは、「require」ステートメントを解析し、出力に必要なコードを含めることであると私は理解していました。たとえば、オンラインUIツールにアクセスすると、それらが提供し、入力ボックスに次のように入力します。
goog.require("goog.dom"); goog.dom.getElement("test");
そして「コンパイル」を押すと、このスニペットを実行するのに十分なグーグルクロージャーコードが返されると思います。代わりに、同じものを取り戻します(空白を差し引いたもの)。何がわからないの?
そして最後に、グーグルのコンパイラサービスはあなたが送るファイルに200kのサイズ制限を持っています。私はMinifyと呼ばれるPHPパッケージを使っています。それはあなたが一度にそしておそらくサービスを通して送られるファイルのリストを送ることを可能にしますこれは、グーグルがあなたが200kの制限に対処することを期待する方法です。コンパイラは、たとえば、プライベート変数がどこでもパブリックとしてアクセスされていないことをチェックすることになっています。これは、ファイルで定義されたクラスを確認するために、リスト内のすべてのファイルの知識が必要であることを意味しているようです。 AはファイルBで違反されていません。これは事実ですか?サービスは、解析された各ファイルを何らかの形で記憶し、メモリに保持し、すべてをクロスチェックしますか?それとも私の理解はまだ欠陥がありますか?
みんなありがとう!