私がやっていることは、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')。
単一のネームスペースに複数の必須を行う標準的な方法はありますか?そうでない場合は、実行可能な代替手段(プラグインコードで浅いコピーを行っています)がありますか?
注:無名関数ラッパーは、standard jquery guidelinesの後に続きます。
注:この修正はjquery-csvプラグインに適用されます。の
module.exports = exports = function (jquery) {
//You modify the jquery object here.
};
変更:また、あなたはこのような何かを行うことができることを意味し
var $ = require("jquery");
require("jquery-csv")($);
:私はこのような何かをやって考えることができます
jqueryが実際に使用されていない場合は?両方のユースケースをカバーしようとしているので、jqueryが実際に存在するかどうかに関わらず$にバインドされます。 –