Wie verwende ich das npm jquery-Modul?

Lesezeit: 1 Minute

Benutzer-Avatar
Pio

Wie soll ich requiredas jquery in node wenn ich es in mehreren Modulen verwende? Soll ich es als global definieren oder sollte ich einfach die verwenden require('jquery)` in jedem Modul brauche ich es?

Ich erhalte eine Fehlermeldung, wenn ich versuche, das Paket zu verwenden.

TypeError: Object function ( w ) {
            if ( !w.document ) {
                throw new Error( "jQuery requires a window with a document" );
            }
            return factory( w );
        } has no method 'isArray'

Es sieht nach einem Fehler in der aktuellen Version aus, da es laut offizieller Dokumentation nicht prüfen sollte, ob ich es in einem Browser ausführe. Dieses Problem wird auch in einem anderen Beitrag erwähnt. Es funktioniert mit Version 1.8.3 wie in einer der Antworten erwähnt.

Benutzer-Avatar
ach

Um jquery in node zu verwenden, benötigen Sie zwei separate Installationen von node-Paketen.

  1. Abfrage
  2. jsdom, um ein Dummy-Fensterobjekt zu erstellen, das jquery verwenden kann.

Installation:

npm install jquery
npm install jsdom

In Code:

var jsdom = require("jsdom").jsdom;
global.$ = require('jquery/dist/jquery')(jsdom().createWindow());

Oder mit neueren Versionen von jsdom:

require("jsdom").env("", function(err, window) {
    if (err) {
        console.error(err);
        return;
    }

    var $ = require("jquery")(window);
});

Die Verwendung von global.$ macht das jquery-Objekt ($) global in Ihrem Projekt verfügbar.

Sie können wie folgt verwenden, um wie gewohnt zu handhaben:

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

  • Dies funktioniert gut für Node.js. Und wenn Sie TypeScript verwenden, vergessen Sie das nicht npm i --save-dev @types/jquery.

    – rodrigocd

    20. Februar 2019 um 11:04 Uhr


  • Danke Rodrigo, das hat mir sehr geholfen.

    – Dan Ortega

    15. Mai 2020 um 16:23 Uhr

1016200cookie-checkWie verwende ich das npm jquery-Modul?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy