多くの JavaScript ライブラリには、クライアントへのダウンロード帯域幅コストと実際に必要な機能を分離するという観点から、依存するライブラリの機能を「形成」できるビルダー ツールがあります。
たとえば、sugar.js の多くの機能が気に入っていますが、カタカナとひらがなの文字セットを処理する必要はありません。最も些細な例として、sugar.js を「整形」して、string.isBlank() のみをエクスポートできるようにしたいと考えています。
これを行うためのツールはありますか? JavaScript の将来のバージョンでこのようなことを行うための EcmaScript 委員会による継続的な取り組みはありますか? TypeScript や CoffeeScript などの高水準言語は、そのような「シェーピング」の隠れたサポートを提供していますか? monolinkerを介して、.NET DLL の C# でこのような「シェーピング」を行うことができます。
基本的に、AMD は最新のコンパイラのローダーの側面を処理するように見えますが、リンカーの側面は処理しません。jqueryおよびdojoのビルダーは特定のモジュールに対してのみ機能し、真のリンカーではなく単なるビルダーです。
更新: Google Closure Compilerは、JavaScript を入力として受け取り、JavaScript を出力として生成するコンパイラです。Advanced Compilation and Externs documentation は、これを行うための API 呼び出しがあることを示唆しています。
これらのエクスポート ステートメントをまとめるのが面倒な場合は、関数を使用してエクスポートを行うことができます。エクスポート関数の例については、クロージャ ライブラリ関数goog.exportSymbol()およびgoog.exportProperty()を参照してください。
しかし、これはかなり複雑なようで、Google Closure Compiler に直接依存することになります。この時点で、CommonJS に関する EcmaScript 委員会からの将来の標準に関する情報、およびこの問題について考え、それに取り組もうとした人々からの知恵を探しています。特に仲間の TypeScript 開発者から。Sugar.js の TypeScript で宣言ファイルを作成し、TypeScript コンパイラの出力に対して Google Closure Compiler を使用する必要はありません。信じられないほど複雑で、デバッグが難しいように思えます。