複数のモジュールで使用する場合、require
のjquery
をnode
で使用するにはどうすればよいですか?グローバルとして定義する必要がありますか、それとも必要なすべてのモジュールでrequire('jquery
) `を使用する必要がありますか?
パッケージを使用しようとするとエラーが発生します。
TypeError: Object function ( w ) {
if ( !w.document ) {
throw new Error( "jQuery requires a window with a document" );
}
return factory( w );
} has no method 'isArray'
現在のリリースでは、公式ドキュメントに従ってブラウザで実行しているかどうかをチェックすべきではないため、バグのように見えます。この問題は 別の投稿 でも言及されています。回答の1つで述べたように、バージョン1.8.3
で動作します。
ノードでjqueryを使用するには、2つの個別のノードパッケージをインストールする必要があります。
インストール:
npm install jquery
npm install jsdom
コード内:
var jsdom = require("jsdom").jsdom;
global.$ = require('jquery/dist/jquery')(jsdom().createWindow());
または、jsdomの新しいバージョンでは:
require("jsdom").env("", function(err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
});
Global。$を使用すると、jqueryオブジェクト($)がプロジェクトでグローバルに使用可能になります。
以下のように使用して、通常どおりに処理できます。
var $;
$ = require('jquery');
$('.tag').click(function() {
return console.log('clicked');
});