Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use npm jquery module?

How should I requirethe jquery in node if I use it in multiple modules? Should I define it as a global or should I just use the require('jquery)` in every module I need it?

I am getting an error when trying to use the 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' 

It looks like a bug in the current release as it should not check if I am running it in a browser according to the official documentation. This issue is also mentioned in another post. It works with version 1.8.3 as mentioned in one of the answers.

like image 513
Pio Avatar asked Feb 10 '14 10:02

Pio


People also ask

Can I use jQuery in node JS?

js: We can use jQuery in Node. js using the jquery module. Note: Use the 'jquery' module not the 'jQuery' module as the latter is deprecated.

What is jQuery NPM?

The name npm (Node Package Manager) stems from when npm first was created as a package manager for Node. js. All npm packages are defined in files called package.


1 Answers

To use jquery in node, you need to have two separate node package installations.

  1. jquery
  2. jsdom to create a dummy window object which jquery can use.

Installation:

npm install jquery npm install jsdom 

In code:

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

Or, with newer versions of jsdom:

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

Using global.$ will make the jquery object($) available globally in your project.

like image 168
agaase Avatar answered Oct 02 '22 19:10

agaase