我正在尝试将 jQuery Mobile 包含在使用 RequireJS for AMD 的项目中,但是,我不想将 jQuery Mobile 作为 AMD 模块加载。这背后的想法是,我们将 AMD 用于特定于应用程序的逻辑,但任何外部库依赖项(例如 jQuery)都将通过手动定义脚本标签进入全局范围。
我遇到的问题是在 RequireJS 脚本标记似乎导致 RequireJS 定义一个匿名模块并创建我不理解的冲突之前为 jQuery mobile 定义一个脚本标记。我查看了 jQuery 和 jQuery Mobile 代码,它们被设置为有条件地调用该define()
方法(如果存在)。由于我在加载 RequireJS 之前包含了这些标签,因此它们不应该调用define()
. 我用断点仔细检查了这一点,但它们确实没有。
当我包含 jQuery Mobile 时,我收到以下错误:
错误:不匹配的匿名 define() 模块:[object Object]
我不明白如果 jQuery Mobile 没有调用define()
. 我在这里做错了什么?这与 jQuery Mobile 的新条件 AMD 支持有关吗?