何
- TypeScript JavaScriptのモジュール関連で、似たような用語がたくさんあり、関係がよくわからないため整理する。
詳細
TypeScript
module
- 外部モジュールと呼ばれていた
- 複数のファイルで(variable, function, class, interface etc)を管理する仕組み
namespace
- 内部モジュールと呼ばれていた
- 名前空間を定義できるが、ファイルをまたいだ利用には、reference tag(
///<reference path="XXX.ts" />
```)が必要
### global (global module)
- moduleを使わない場合をこう書いてみた。global moduleが正しい?
- https://basarat.gitbooks.io/typescript/content/docs/project/modules.html
## JavaScript
### CommonJS/AMD
- モジュール管理の仕様
- TypeScriptからはtscで仕様を選んでコンパイルする
- namespaceのTypeScriptからは、これらのモジュールの世界には入れない
- 他にもUMD/ES6/SystemJSなど、仕様はいろいろある
### global namespace
- moduleを使わない場合にいろんなものはここに保存される
## module loader
### webpack/browserify
- CommonJSの仕様に従ったファイルを(CommonJSの仕様を解釈できない)Browserで利用可能にするためのツール
- webpack/browserifyは、module loaderのくくりで良い?
### RequireJS
- AMDの仕様に従ったファイルをBrowserで利用可能にするためのライブラリ(モジュールローダ)