私は Node.js で Web サーバーを作成しており、クライアント SDK を含む単一の JavaScript ファイルをクライアントに配信したいと考えています。SDK は基本的に、クライアントが使用できる多くの機能を提供するオブジェクトです。
さまざまなソースから SDK をビルドする必要があります。
- AngularJS などのサードパーティ ライブラリ
.js
サーバー上の静的ファイルに保存されるカスタム コード- 実行時にメモリ内で動的に作成されるカスタム コード
カスタム コード (#2) を簡単にテストできるようにするため、およびこのコードをサーバー側と共有できるようにするために、CommonJS に従って記述できれば素晴らしいと思います。
私はクライアント側のために物事をまとめた経験はあまりありませんが、UglifyJS と Browserify については知っています。
いくつかのファイルを連結する (そしておそらくそれらを縮小する) だけの場合は、UglifyJS で何をすべきかを知っていました。CommonJS と互換性のあるものを提供するだけであれば、Browserify をどうすればよいかもわかっていました。私が得られないのはそれらの組み合わせであり、これに加えて需要#3 - 動的に生成されたコードです。
これは基本的に、これに Grunt を使用できないことを意味しますが、実行時にすべてを行う必要があります (なぜこのようにしたいのかについては議論しないでください)。
だから…ちょっと迷った。誰でも私のために物事を明確にするのを助けることができますか? 最終的にクライアントに送信してクライアントが使用できる単一の成果物になるように、これらすべての要素をどのように組み合わせる必要がありますか?
基本的に、クライアントが最終的に受け取るべきものは、 などの多数のグローバル オブジェクトと$
、angular
私自身のcustom
オブジェクトですが、これらはすべて 1 つのファイルをロードするだけです。
どうすればこれを行うことができますか?
PS: それが私にとって完全に問題のない純粋なインメモリ ソリューションである場合、結果をサーバー上のディスクに書き込む必要はありません (ファイル システムへの書き込みアクセスが必要ないため、さらに推奨されます)。 .