RequireJS-具有多个jQuery版本的jQuery插件
我正在尝试将一些遗留的js代码包装到模块中,以便可以使用RequireJS加载它们 我有三个jQuery插件,我们称它们为a、b和cRequireJS-具有多个jQuery版本的jQuery插件,jquery,requirejs,Jquery,Requirejs,我正在尝试将一些遗留的js代码包装到模块中,以便可以使用RequireJS加载它们 我有三个jQuery插件,我们称它们为a、b和c 插件a适用于任何版本的jQuery 插件b与jQuery版本1.4.2配合使用 插件c使用a和b,可以与任何版本的jQuery一起使用 因此,无论何时需要插件a,需要加载的jQuery都是版本1.4.2。 我的require.config看起来像: require.config({ paths:{ "jquery": "libs/jque
- 插件a适用于任何版本的jQuery
- 插件b与jQuery版本1.4.2配合使用
- 插件c使用a和b,可以与任何版本的jQuery一起使用
require.config({
paths:{
"jquery": "libs/jquery.1.9.1.min",
"jquery1-4-2" : "libs/jquery1.4.2.min"
});
插件的定义如下:
plugin a:
define(["jquery"], function($){ (...) });
plugin b:
define(["jquery1-4-2"], function($){ (...) });
plugin c:
define(["jquery", "a","b"], function($){ (...) });
我如何配置这个场景,以便如果任何插件需要某个版本的jQuery,而其他插件不需要某个版本,那么只加载该版本
提前感谢。如果您真的在使用jquery 1.4,那么这个版本不支持Requirejs,您应该定义de-shim配置,但是由于jquery全局定义$object,因此会覆盖任何现有的全局$variable,因此会产生冲突。
我认为你可以使用jQuery.noConflict来避免这个问题。如果有人感兴趣,在这里找到了这种情况的解决方案:那么它是否可以归结为使用
map
根据依赖它的模块来重新定义jQuery
模块?据我所知,当这个模块“oldplugin”要求“jquery”,您将返回另一个js,而不是为模块“jquery”定义的js。但是,在使用诸如require([“jquery”,“oldplugin”]、function($){(…)})之类的东西时,要特别小心jquery命名空间,因为$将表示“默认”jquery版本,而不是require js通过map为“oldplugin”加载的版本“.Hello,在Require js中有一个shim:{}配置,您可以使用它来解析use。请添加您找到的答案,以便将此问题从“未回答”选项卡中删除。