【问题标题】:RequireJS Mismatched anonymous define error caused by Drupal?Drupal引起的RequireJS Mismatched匿名定义错误?
【发布时间】:2013-09-08 07:11:11
【问题描述】:

我的 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在我包含之前加载require.js 脚本。

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

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

【问题讨论】:

    标签: javascript drupal-7 requirejs requirejs-define


    【解决方案1】:

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

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

    进一步更新:

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

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 1970-01-01
      • 2015-02-19
      • 2016-03-24
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多