【问题标题】:using jquery with browserify将 jquery 与 browserify 一起使用
【发布时间】:2012-07-08 00:08:41
【问题描述】:

我正在尝试通过模块 jquery-browserify 将 jQuery 与 browserify 一起使用。 我在我的 client.js 脚本中需要该模块:

    var $ = require('jquery-browserify');

当我运行我的节点服务器时,在我运行 browserify 之后,我收到“未定义窗口”错误。我做错了什么?

【问题讨论】:

  • 你试图在节点内部而不是在浏览器中使用它,对吧?
  • Browserify 是在浏览器中使用的。
  • 也许你必须传递一个对窗口对象的引用:var $ = require('jquery-browserify')(window);
  • 尝试在本地安装 jquery "npm install jquery --save-dev" 并使用它 "var $ = require('jquery');"而不是“jquery-browserify”。

标签: jquery node.js browserify


【解决方案1】:

jQuery 现在兼容 CommonJS,从 2.1.0 版本开始

【讨论】:

  • 这是很久以前的事了,我不希望有回应,但无论如何。这是如何运作的。我从 npm 获取 jQuery 2.10 模块,但是当我创建一个模块并使用 browserify 将其传递时,我无法在该模块中使用 jquery。我看到很多 cmets 说它是 commonJS 兼容的,但没有说明如何使用它。
  • 有趣,你能在 GitHub 上发布一个例子吗?我发现 var $ = require('jquery') 工作得很好。
【解决方案2】:

Browserify 可以使用 deamdify 转换处理 CommonJS 模块以及 AMD 模块,因此现在应该不需要使用 shim。

需要说明的是,我只注意到 JQuery 2.0.0 中的 AMD 支持

【讨论】:

  • 2012 年有人问过这个问题太糟糕了。这可能就是他们提出这些问题的原因。
【解决方案3】:

jQuery 不兼容 CommonJS,即它直到 2.1.0 才通过 module.exports = $ 导出自身。

因此,您需要通过 browserify-shim 填充它。

browserify-shim即时填充任何版本的 jquery 或任何其他非 CommonJS 库,例如 Zepto。 自述文件中包含有关如何设置的详细信息。

作为替代方案,您也可以使用jquery-browserify,但您将被绑定到该模块使 CommonJS 兼容的 jQuery 版本。

【讨论】:

  • 从 2.1.0 开始符合 commonsJS
猜你喜欢
  • 2015-03-13
  • 1970-01-01
  • 2016-01-30
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-02
  • 1970-01-01
相关资源
最近更新 更多