如果我在多个模块中使用 require
node
中的 jquery
应该如何?我应该将它定义为全局还是应该只在我需要的每个模块中使用 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'
它看起来像当前版本中的一个错误,因为它不应该根据官方文档检查我是否在浏览器中运行它。 another post 中也提到了这个问题。 .如答案之一所述,它适用于版本 1.8.3
。
最佳答案
要在 node 中使用 jquery,你需要有两个单独的 node 包安装。
- jquery
- jsdom 创建一个 jquery 可以使用的虚拟窗口对象。
安装:
npm install jquery
npm install jsdom
在代码中:
var jsdom = require("jsdom").jsdom;
global.$ = require('jquery/dist/jquery')(jsdom().createWindow());
或者,使用更新版本的 jsdom:
require("jsdom").env("", function(err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
});
使用 global.$ 将使 jquery 对象($) 在您的项目中全局可用。
关于javascript - 如何使用 npm jquery 模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21674080/