我是第一次在项目中使用 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/