我的应用程序的 JavaScript 使用 jQuery 和 jQuery 插件并在我无法控制的“敌对”环境中运行(这是电子商务平台的 PHP 扩展)。因此,无法确定我的 jQuery 代码是否会在有人附加他的 jQuery/插件实例(由其他扩展引入)之前或之后执行,或者有人会在页面呈现后动态加载 jQuery。
基本上问题是其他扩展也可以使用 jQuery(带有插件)并且仅将 jQuery 与标签连接是行不通的。
我有一种强烈的感觉,RequireJS 可能会帮助我将所需版本的 jQuery 加载到封装范围内的特定版本的 jQuery 插件,而不会污染全局范围(因此其他扩展仍然可以正常运行)。然后我将把我所有的代码包装到“require”语句中,它将使用它自己的一组 jQuery 和插件运行。我试过这个并且它有点工作(虽然没有在生产环境中测试过)但是以某种奇怪的方式。似乎这个问题与我遇到的问题有点相关。还回答建议使用与 AMD 兼容的 jQuery 版本。但是插件呢?我不认为我使用的所有插件都有这样的版本。
所以问题:
RequireJS 可以用来覆盖这样的用例(在未定义的环境中运行 jQuery+插件)吗?如果 RequireJS 可以在那里使用,那么任何示例代码或如何正确执行此操作的解释将不胜感激。如果没有办法用 RequireJS 来解决这个问题,您认为处理问题的最佳方法是什么?