jquery - 使用 requirejs 和 jquery,而不破坏全局 jquery?

标签 jquery module requirejs

我是第一次在项目中使用 requirejs。我正在一个已经有很多 Javascript 的环境中工作,并且我正在寻找干净的方法来引入我自己的代码。

我遇到的问题是我似乎找不到可以加载且不会破坏现有 jQuery 的 jQuery 模块。

令我惊讶的是,甚至 require-jquery.js 也引入了 jQuery 的全局版本。有没有一种方法可以将 jQuery 作为模块加载而不引入任何全局变量?

最佳答案

jQuery 1.7 支持 AMD 加载。但是,诀窍是避免模块命名冲突,因为 jQuery 将其自己的模块名称硬编码为“jquery”。如果您将另一个模块定义为“jquery”(例如,在 requirejs 配置中的“paths”属性中),它将导致上述冲突。

要在 requirejs 应用程序范围内加载 jQuery,请定义一个模块,例如“jquery-loader”,当您想要加载 jQuery 时,通过“jquery-loader”来执行:

define(['path/to/jquery.min'], function () {
    return jQuery.noConflict(true);
});

requirejs 会“缓存”您对 jQuery 的引用,这样 noConflict 只会在第一次加载 jquery-loader 时运行。

关于jquery - 使用 requirejs 和 jquery,而不破坏全局 jquery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4858431/

相关文章:

jquery - 复制 jQuery 片段后禁用弹出窗口

javascript - Typescript 的导入无法解析外部模块

javascript - 在主干 View 结束时返回什么?

javascript - ReactJS 和 RequireJS -> 如何使用从一个模块返回的多个类?

javascript - 移动棋子的位置

javascript - 如何使用 javascript 检索复选框的属性值

javascript - JS 发送带有 django 标签的 html

function - 自定义函数无法识别

ruby - 在模块前添加 ActiveSupport::Concern ? ruby 2+

c - Linux 内核模块 - IOCTL 使用返回 ENOTTY