7

我在这里遵循多页 shim 共享模式: 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()。在过去的 24 天里 requireJS 中的某些内容是否发生了变化(因为多页 git 存储库已更新)?

4

2 回答 2

7

答案是这样的,希望它可以帮助某人:

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

其中一些资产,即 jquery 1.10、spin.js 等,与 AMD 兼容,并且正在调用 define()。在 spin.js 的情况下,它匿名调用 define(),这会导致加载失败,如解析文档中 Mismatched Anonymous 错误的第二点所述。

好伤心。

于 2013-06-04T20:33:35.173 回答
0

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

// common.js stuff...
define({});
于 2013-06-03T19:19:07.223 回答