2

私はM、socket.io クライアントを依存関係として含む、browserify によって作成されたモジュール (たとえば ) を使用しています。MAMD アプリケーション内で使用されています。上記のアプリ内でM、ソケット クライアントへの接続呼び出しを発行し、選択されたトランスポートが jsonp-polling の場合、jsonp コールバックを実行しようとすると、ReferenceError: io is undefined. ioグローバルではなく、 module 内にラップされているため、これは私にとって完全に理にかなっていますM

だから私の質問は、グローバルスコープに存在するio 必要がありますか? ioグローバルスコープに追加せずにコールバック配列にアクセスできるようにする方法はありますか?

免責事項- サンプルコードを提供していないことを感謝しますが、実装と実行が簡単な適切なモック例を作成するのに苦労しています. 質問が本当に意味をなさない場合は、私に知らせてください。何かをまとめることができるかどうかを確認しますが、誰かが答えられると思う場合、またはコードを見ずに正しい方向に向けてください。 !

4

1 に答える 1

3

いいえ、グローバル名前空間にある必要はありませんが、多少の作業が必要であり、github プロジェクトのルートにあるビルド済みのファイルを使用することはできません。

socketio-clientソースからプロジェクトをビルドする必要があります。component.js唯一の問題は、偉大な TJ Hallowaychuck によって作成された単純なクライアント側パッケージ マネージャーであるを使用してプロジェクトがビルドされていることです。あなたが遭遇する問題は、コンポーネントが で構築されるとき、グローバル名前空間で browserify 自身の実装と競合する関数の独自の実装とともに出荷されることですcomponent(1)require()

ただし、すべてが失われるわけではありません。レスキューに変身…

https://github.com/eugeneware/decomponentify

この変換を使用すると、他の browserify 対応モジュールと同様に、browserify 内でビルドさcomponent(1)れたモジュールを使用できます。require()使い方はドキュメントを読んでください。

はい、私もクライアント側のパッケージ管理が標準化される日を待っています。

于 2013-12-18T19:26:45.817 に答える