web-dev-qa-db-ja.com

npm jqueryモジュールを使用するには?

複数のモジュールで使用する場合、requirejquerynodeで使用するにはどうすればよいですか?グローバルとして定義する必要がありますか、それとも必要なすべてのモジュールで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で動作します。

19
Pio

ノードでjqueryを使用するには、2つの個別のノードパッケージをインストールする必要があります。

  1. jquery
  2. jsdomは、jqueryが使用できるダミーウィンドウオブジェクトを作成します。

インストール:

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オブジェクト($)がプロジェクトでグローバルに使用可能になります。

16
agaase

以下のように使用して、通常どおりに処理できます。

var $;
$ = require('jquery');
$('.tag').click(function() {
  return console.log('clicked');
});
14
MahyarJ