1

我已经在我的 drupal 网站上运行了几个月的 require.js 应用程序。据我所知,应用程序的代码没有任何变化,但昨天突然我开始收到以下错误:

Uncaught Error: Mismatched anonymous define() module:

有趣的是,即使我的 main.js 文件只包含以下内容,我也遇到了同样的错误:

require.config({});
require([''], function() {
});

但是,当我将 main.js 完全留空时,出现以下错误:

Uncaught Error: Script error for: piwik

Piwik 是文档开头包含的第一个 js 文件。

我检查了 Require.js 文档,发现这可能是由于在 Require.js API 之外加载 require 模块造成的。为了测试是否是这种情况,我在 Drupal 环境之外运行了我的应用程序——而不是在 Drupal 模板中加载,我现在通过具有与 Drupal 模板文件相同标记的外部 html 文件加载它。在该设置中,我没有收到错误,并且应用程序按预期加载。

所以我的问题是,与 Drupal 核心 javascript 文件和 require.js 是否存在任何已知冲突?我能想象的唯一引起问题的是jquery(包含在文档头中)会检查define是否是一个函数,以及它是否将jquery定义为一个模块......但是jquery在我包含之前加载需要.js 脚本。

我在页面上没有任何其他包含“define”、“require”或“module”的脚本。

我正在使用最新版本的 Require (2.1.8) 和最新的 Drupal 版本 (7.2.3)

4

1 回答 1

3

好的——我已经解决了上面的问题。有点儿。

为了调试问题,我在 require.config 中使用了“enforceDefine: false”。我立即收到一条错误消息,告诉我我所需的依赖项之一缺少定义函数。我查了一下,确实是这样(似乎是由新的 git commit 引起的)。我仍然收到不匹配错误,但至少加载了应用程序。

进一步更新:

最终是由 piwik 使用“定义”引起的。显然,这已在即将发布的 Piwik 版本中修复。

于 2013-09-04T17:13:16.397 回答