gpt4 book ai didi

javascript - 带有 RequireJS 的 Knockout 映射插件 : Uncaught Error: Mismatched anonymous define() module

转载 作者:行者123 更新时间:2023-11-29 10:51:13 25 4
gpt4 key购买 nike

我在结合使用 knockout.mapping 插件和 RequireJS 时遇到了这个问题。基本上,托管我的应用程序的站点按此顺序加载 knockout、knockout.mapping 和 requirejs。

<script src="http://127.0.0.1/scripts/require.js" type="text/javascript"></script>
<script src="http://127.0.0.1/scripts/knockout.js" type="text/javascript"></script>
<script src="http://127.0.0.1/scripts/knockout.mapping.js" type="text/javascript"></script>

甚至没有做任何进一步的事情,我得到了这个不匹配错误。是否有某种我没有意识到的顺序?

///更新///

我写了这两个测试:

基本上,您看到的是,如果我在映射插件之前将 require.js 单独加载到我的项目中,那么映射插件就会变得不可见。我认为这与映射插件如何使用 require 要求 knockout 有关......但我无法确定它失败的原因。

///第二次更新///

这里的情景似乎很重要,所以我将提供更多背景信息。

想象一个 Web 应用程序,它在脚本标签中定义了 knockout.js 和 knockout.mapping.js。然后第三方小部件加载到页面中,该页面使用 requireJS 来建立它的依赖关系。正是这种加载似乎导致了这个问题。由于一些库是通过旧学校手动加载的,而其他库是使用 require 加载的,require 似乎与现有库的上下文混淆。

如果我从主机应用程序中删除对 require 的引用,那么当我回来查看 ko.mapping 是否存在时,我会收到错误消息。这显然是因为小部件确实需要 knockout ,这以某种方式破坏了它与映射插件的关系。

我想我需要一个非常熟悉 RequireJS 的人来评论堆叠这些库。显然,当我创建一个用于匿名消费的小部件时,我不知道消费者如何或是否使用 requireJS。

///第三次更新///尝试尽可能地澄清问题,也许这会更有意义:

是否有任何明确定义的模式,您可以在其中将使用 RequireJS 的小部件注入(inject)现有网页,手动加载资源?这似乎是不可能的,因为 RequireJS 只会双重加载传统页面可能已经加载的任何内容。

最佳答案

答案是使用模块加载器加载所有 JavaScript,不要回头看。我认真地认为这是唯一的解决办法。在大多数客户站点尚未达到这一点的世界中开发使用模块加载器的小部件会使您使用一些老派的心态。

现在,如果我能得到我在这个问题上生气的 +50 分 :)

关于javascript - 带有 RequireJS 的 Knockout 映射插件 : Uncaught Error: Mismatched anonymous define() module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9793206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com