requireJS - 多页垫片中不匹配的匿名define()模块

时间:2013-06-03 17:59:46

标签: requirejs amd

我在这里遵循多页垫片共享模式: https://github.com/requirejs/example-multipage-shim

我正在使用相同的common.js并且设置非常相似且简单:

<script src="js/library/requirejs/require.min.js"></script>
<script>
require(['./js/config/common'], function (common) {
  //go on...
});
</script>

一切都很好,我可以继续在require闭包内运行操作,但是我一直在Firefox中抱怨错误,抱怨匿名的define()模块与上面的代码不匹配。鉴于它是多么简单,而且我正在按照示例模式进行操作,我有点困惑,为什么我得到它。我没有在任何地方使用define()。 requireJS中的某些内容在过去24天内发生了变化(因为多页git repo已更新)?

2 个答案:

答案 0 :(得分:7)

答案就是这个,希望它有助于某人:

鉴于这是一个很大的平台,许多其他东西正在需求流程之外被加载(我们正在慢慢过渡)。

其中一些资产,即jquery 1.10,spin.js等,与AMD兼容,并且正在调用define()。在spin.js的情况下,它是匿名调用define(),它正在加载加载,如解析文档中不匹配的匿名错误的第二点所述。

好悲伤。

答案 1 :(得分:0)

很明显发生了什么。您正在尝试加载模块,但您的common.js只有require.config并且没有模块。因此更新的RequireJS(不是Firefox)会引发错误。在您的常见JS中包含define,错误应该消失。

// common.js stuff...
define({});