JavaScriptパッケージ管理システム案

JavaScriptコンパイルすべきだと思うんだ。まあコンパイラって言うよりプリプロセッサ。サーバサイドで動く。

// 例
include("sample.js") //← これ

Sample.hoge("huga");

コンパイル

// 例
Sample={
  hoge:function(str){
    alert(str);
  }
} //← これ

Sample.hoge("huga");
  • 開発中は普通に関数として動き、そのときの動作は「実行時にそのパッケージをロードする」
  • プロセッサを通すと外部ファイルを読み込んで事前展開する
  • 読み込んだ外部ファイルの中身も同じように。

antや にしくんだりapacheのモジュールにしたり、rubyphpのモジュールとしてフレームワークから読んだりするといいと思います。

include("") みたいなのが判別しにくい(パースしにくい)なら、$$include$$ みたいなのにして、js中にあろうが無かろうが展開するというルールでもよいと思う。

なぜひつようか?

JavaScriptのライブラリって、高機能になってきてどんどん大きくなってる。なのに実行される部分は少ない。だけど相互の依存性はすごい高い。そして大きければ大きいほど、多ければ多いほど読み込みや展開に時間がかかり、それらはユーザーが負担する。
動的ローディングは読み込みまで時間がかかる。外部ファイルいっぱいにするのも時間がかかる。でも、そっちの方が開発しやすい。というかエラーが「XXファイルの何行目」で出るので、それが見つけにくいシステムでは開発できない。開発時から内部展開されるようだとエラーを見つけるのに一苦労。

もっと、2,3行くらいのライブラリがすっごいいっぱいあって、それらの依存性は機械が勝手に解決してくれて、みたいなシステムが欲しいので、そんなに難しくないと思うから誰か作ってください!