[英]Browserify with jQuery >= 2 produces “jQuery requires a window with a document”
[英]How to resolve “jQuery requires a window with a document” with import
我得到jQuery requires a window with a document
错误jQuery requires a window with a document
并且似乎我需要一个类似的答案: 错误:jQuery需要带有文档的窗口
我正在寻找的是使用import
而不是require
的正确语法,因为我require
在Node应用程序中添加其他任何内容。 我正在尝试让它在React组件中工作。 我试过了:
import jsdom from 'jsdom';
import $ from 'jquery';
jsdom.jsdom().createWindow();
和:
import jsdom from 'jsdom';
const $ = require('jquery')(jsdom.jsdom().createWindow());
但这并不能使我到达那里。 我该如何解决?
注意 :这仅适用于旧版本的jsdom。
我这样做是为了在Node上下文中使用jQuery Mockjax进行测试 。 本质上,我使用jsdom env()
方法生成带有空白HTML文档的window对象:
const jsdom = require('jsdom');
let $;
jsdom.env('<html></html>', function (error, window) {
if (error) {
// handle this somehow
} else {
$ = require('jquery')(window);
// now you have it...
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.