ネームスペースすら存在しないjavascriptに秩序と安寧をもたらす一筋の光。AMD(以下require.jsを想定)との出会いにより、javascriptは文字通り大舗装されていった。

なんと言ってもJavaやC#的なクラス(モジュール)単位でのファイル分割と、ファイル間の依存関係を一挙に解決してくれる恩恵は絶大であった。

さらに嬉しいことに、ビルドする必要がなくブラウザで即動かすことができるというjavascriptの利点はそのまま残る。そして公開するタイミングになったらr.js使ってビルド圧縮と至れり尽くせり。

こうして全てのフロントエンドjavascriptに平和は訪れたのである、めでたしめでたし・・・と最近までは思っていた。

AMDで作った自作javascriptをライブラリとして公開するにはどうすんの???

困った、困った困った。
何がしたいのかと言うと、jqueryみたいにAMDで製造をするけど、公開時には$に全ての機能が集約されているという状態にビルドしたい。

とりあえずお手本としてjqueryがどうやってビルドしているのか研究しようと思うも、正直全く理解できない。というのも、r.jsとかでモジュール結合して終了という単純なものではなく、結合してからさらに別ファイルの記述をconcatするとかいろいろしていて全容がなかなか掴めない。
極めつけは、githubのそれぞれのソースファイルではdefineやrequireが登場しているのに、公開されているjquery.jsの中身にはそれらしき記述が登場しなくてAMD系ライブラリがなくても問題なく利用できる。
助けて、助けて救いのヒーロー・・・。

カスタムビルドを自由に行えるのだからこの魔法のビルドも体系だって実装されているはずなのに、正解は目の前にあるのにそれを解読できないこのもどかしさ。ということで誰か解説お願いします。

魔法のビルドを行うことは最終目標として、まずはrequire.jsで読み込めるAMD方式のビルドを目指そうと思う。
その2に続く。