私がやろうとしているのは、jQuery プラグインを Node.js 上の jQuery で動作するように適合させることです。
私が理解していることから、最も基本的な形式の CommonJS では、ライブラリをクロージャーでラップする必要があり、そのクロージャーは「エクスポート」パラメーターのパラメーターとして使用できるようにする必要があります。そうすれば、コードは (名前付き変数を介して) 独自の名前空間にきちんと含まれ、グローバル名前空間を汚染しません。
jQuery 自体は '$' 名前空間に含まれる必要があります。
アラ:
var $ = require(jquery);
しかし、私のプラグインは '$' 名前空間にも収まるはずです。
プラグイン コード:
(function( $ ) {
// plugin code goes here
})(jquery);
exports.jquery = jquery // will this work?
元:
var $ = require(jquery);
$ = require(jquery-csv.js); // will this work?
モジュールが「$」のサブ名前空間 (つまり「$.csv」) として設定されていても、ブラウザーで動作するように、すべてが「$」名前空間から呼び出せるように設定されています。
単一の名前空間で複数の require を行う標準的な方法はありますか? そうでない場合、実行可能な代替手段はありますか (プラグイン コードの浅いコピーを行うなど)?
注: 匿名関数ラッパーは、標準の jquery ガイドラインに従います。
注: この修正は、jquery-csvプラグインに適用されます。