【问题标题】:How to use npm jquery module?如何使用 npm jquery 模块?
【发布时间】:2014-03-07 14:23:36
【问题描述】:

如果我在多个模块中使用node 中的requirejquery,我应该如何使用它?我应该将它定义为全局还是应该在我需要的每个模块中使用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

【问题讨论】:

    标签: javascript jquery node.js npm


    【解决方案1】:

    要在 node 中使用 jquery,你需要有两个单独的 node 包安装。

    1. jQuery
    2. 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 对象($) 在您的项目中全局可用。

    【讨论】:

      【解决方案2】:

      您可以像往常一样使用如下处理:

      var $;
      $ = require('jquery');
      $('.tag').click(function() {
        return console.log('clicked');
      });
      

      【讨论】:

      • 这适用于 Node.js。如果你使用 TypeScript,别忘了npm i --save-dev @types/jquery
      • 感谢罗德里戈,这帮助很大。
      猜你喜欢
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 2016-11-08
      • 2021-04-12
      • 2019-06-12
      • 2016-03-23
      • 2019-01-26
      相关资源
      最近更新 更多