Comment dois-je require
le jquery
dans node
si je l'utilise dans plusieurs modules? Dois-je le définir comme global ou dois-je simplement utiliser le require('jquery
) `dans chaque module j'en ai besoin?
Je reçois une erreur lorsque j'essaie d'utiliser le package.
TypeError: Object function ( w ) {
if ( !w.document ) {
throw new Error( "jQuery requires a window with a document" );
}
return factory( w );
} has no method 'isArray'
Il ressemble à un bogue dans la version actuelle car il ne devrait pas vérifier si je l'exécute dans un navigateur selon la documentation officielle. Ce problème est également mentionné dans n autre article . Il fonctionne avec la version 1.8.3
comme mentionné dans l'une des réponses.
Pour utiliser jquery dans le nœud, vous devez disposer de deux installations de packages de nœuds distinctes.
Installation:
npm install jquery
npm install jsdom
Dans du code:
var jsdom = require("jsdom").jsdom;
global.$ = require('jquery/dist/jquery')(jsdom().createWindow());
Ou, avec les nouvelles versions de jsdom:
require("jsdom").env("", function(err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
});
L'utilisation de global. $ Rendra l'objet jquery ($) disponible globalement dans votre projet.
Vous pouvez utiliser comme ci-dessous pour gérer comme d'habitude:
var $;
$ = require('jquery');
$('.tag').click(function() {
return console.log('clicked');
});