Как использовать модуль npm jquery?
Как мне 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.8.3
, как указано в одном из ответов.
Ответы
Ответ 1
Чтобы использовать jquery в node, вам нужно иметь две отдельные установки пакета node.
- jquery
- jsdom для создания объекта фиктивного окна, который может использовать jquery.
Установка:
npm install jquery
npm install jsdom
В коде:
var jsdom = require("jsdom").jsdom;
global.$ = require('jquery/dist/jquery')(jsdom().createWindow());
Или с более новыми версиями jsdom:
var jsdom = require("jsdom").jsdom;
jsdom.env("", function(err, window) {
if (err) {
console.error(err);
return;
}
global.$ = require("jquery")(window);
})
Использование global. $сделает объект jquery ($) доступным глобально в вашем проекте.
Ответ 2
Вы можете использовать, как показано ниже, как обычно:
var $;
$ = require('jquery');
$('.tag').click(function() {
return console.log('clicked');
});
Ответ 3
Если вы используете jQuery для клиентских целей, это то, как я это сделал, и я нахожусь в стеке MEAN, используя jade templating engine.
Например; Скажем, у меня есть простой макет.
![введите описание изображения здесь]()
Я буду использовать все jquery-функции в одном приложении с помощью index.jade, и я буду загружать, как это.
![введите описание изображения здесь]()
`` `
extends layout
block content
script(type='text/javascript', src="http://code.jquery.com/jquery-1.9.1.min.js")
div#container(style="min-width: 500px; height: 500px; margin: 0 auto")
script.
if (jQuery) {
console.log("jQuery library is loaded!");
} else {
console.log("jQuery library is not found!");
}
$(function () {
});
h1= title
p Welcome to #{title}
`` `