7

私はさまざまなコンポーネントのためにGoogle JavaScriptクローズライブラリを使用しています。また、依存関係管理も使用しました。依存関係管理にrequirejsを使用する方法と比較して、私は興味があります。具体的には、一方を選択する特別な理由はありますか?requirejs vs google javascript closure依存関係管理

Googleクロージャライブラリを使用している場合、依存関係を管理するためにrequirejsを使用する論理的な理由がクロージャ依存関係管理を使用していますか?クロージャーが必要としないことを要求する基準はありますか?

+0

私は、両方のメカニズムが異なるレベルで動作していると思います。 Google Closureは、開発中の依存関係の管理に使用され、すべての依存関係を1つのファイルにコンパイルするために使用されます。 require.jsなどは実行時に使用されます。 –

+1

@FelixKling、それは100%正しいものではありません。 RequireJsには依存関係ツリーを解決できるコンパイラもあり、クライアントでこれを行う必要はありません。 –

答えて

4

クローズライブラリの依存関係管理は、依存関係を解決するためのファイルの順序を提供するためのもので、コンパイル時にクローズコンパイラによって削除されます(実際には必要に応じて名前空間を提供するために必要に応じて書き直されます)。コンパイラにはAMDモジュールのコンパイル時のサポートがありますが、特にClosureのgoog.requireを完全に置き換えるためには、型チェックの前にいくつかの作業が必要です。コンパイラのサポートが十分であっても、goog.requireは従属性管理を行うためにJSの完全な解析を必要としません(これは、RequireJSに十分に精通していないため) goog.requireファイルは現在はるかに効率的です。

+0

は、コンパイルされたコードをモジュールに分割することもできます。 – lennel