
jQueryライブラリーは、複数のデータ形式(XML、HTML、DOMオブジェクト、通常のオブジェクト)を一度に操作するための広く認識されているツールであり、さらに、便利な(短い)名前の便利な(チェーン)メソッド呼び出しによって機能します。 したがって、jQueryを1つのクライアントだけでなく、サーバー側のJavaScript、特にNode.jsにも適応しようとする試みは、まったく驚くことではありません。
jQuery開発者が
問題番号7102を克服したとき、その名前(「jQueryをCommonJS非同期モジュールとして登録する」)
がしばらくの間私を欺いたことさえ正直に認めます。私は最初にNode.jsにあると思いましたNode.jsとommonJSモジュールには多くの共通点があります)これからjQueryは非選択的に動作します。
しかし、いや、
そこにあった。
コミット と マージリクエスト を詳しく見る
と 、 jQueryが実際に
AMDモジュール
としてのみ登録できる
ようになり、自己登録の前に
define.amd と define.amd.jQueryのプロパティをチェックすることさえできることが
わかります。

実際のところ、jQueryアーキテクチャは、ブラウザDOMの条件で使用するために「調整」されています。jQueryコードは、すべてのjQueryコードに隣接するメインクロージャの引数として機能する
ウィンドウオブジェクトの存在に依存します。 以前は、このような暗黙の仮定がさらにあり、
問題番号6690が削除されただけで、jQueryライブラリはグローバル
ナビゲーター と ロケーションオブジェクトの存在に依存しなくなり
、代わりにそれらを
ウィンドウオブジェクトのプロパティとして受け取り始めました。 (このような仮定は、
グローバルオブジェクトが
ウィンドウではなく
グローバルオブジェクトのプロパティとして機能するNode.jsには決して適していなかったことは明らかです。他の多くのCommonJS実装にも適合しませんでした。)
したがって、
Node.jsで jQueryを起動するには、
ブラウザベースのDOMの既製の実装
が使用されます
-jsdomパッケージなど、これに基づいて
非選択的に動作します。たとえば、以下にコード例を示します。
そして、jsdomは
node-jQueryパッケージ
に基づいており
、これは構文糖で作られた追加のラッパーによって区別されます。
このタスクに対する他の方法やアプローチはありませんが、これまでのところ誰もいません。