2016-05-12 25 views
2

-Angular 2がCommonJsモジュール形式で記述されているのはなぜですか?彼の<a href="https://addyosmani.com/writing-modular-js/" rel="nofollow">article</a>に<a href="https://twitter.com/addyosmani" rel="nofollow">ADDY OSMANI</a>で述べたように

AMDは 非同期動作を選ぶ、開発へのブラウザ最初のアプローチを採用し、互換性後方簡素化、それ は、ファイルの任意の概念を持っていないI/O.オブジェクト、関数、 のコンストラクタ、文字列、JSON、その他多くの種類のモジュールをサポートしており、ブラウザには がネイティブに実行されます。それは信じられないほど柔軟です。一方

CommonJSジョンハンとして にそれを参照することになり、それは(サーバ上の)将来の要求を満たすためにしようとして、グローバルな荷物を 同期動作を想定していない、サーバー最初のアプローチをとります。これにより、 は、CJSがアンラップされたモジュールをサポートしているため、 が、ES.next/Harmony仕様に少し近づくと、 AMDが強制するdefine()ラッパーを解放できます。ただし、CJSモジュール は、オブジェクトをモジュールとしてのみサポートします。

したがって、クライアントサイドのJavaScriptフレームワークであるAngularは、AMDモジュール形式で記述されている必要があります。何が私がここで行方不明であるか理解するのを助けてください。

ありがとうございます!

+1

* "ES.next/Harmony仕様に近い" * - 十分な理由があるはずです。 – deceze

+0

@deceze CommonJsではなく、ES.next/Harmony/ES6モジュール形式で書かれていると言うのは正しいでしょうか? –

答えて

1

角2はそれ自身のモジュールです - SystemJSを使用します。

SystemJSは

  1. ES6モジュールをロードする方法を提供することES6モジュールローダ上に構築されたライブラリである

  2. CommonJSモジュール

  3. AMDモジュール

  4. グローバルスクリプト。

したがって、角度2は、これらのすべてのモジュール形式をサポートしています。いくつかの開発者は、(まだ)AMDコンベンションをサポートしていないモジュールの使用を好む。

関連する問題

 関連する問題