gojs 和 Aurelia 不匹配错误

gojs and Aurelia mismatch error

我创建了一个新的 aurelia 项目并通过 npm 安装了 gojs。我将 gojs 添加到 aurelia.json 依赖项,并且没有添加任何 gojs 代码,只是尝试构建项目。构建工作正常,gojs 去了供应商-bundle.js 问题是,当我 运行 项目时,gojs 出现错误。当我删除 aurelia.json 中的 gojs 依赖项时,项目 运行 很好,但将其添加回来总是会抛出位于下方的相同错误。请帮忙。

Uncaught Error: Mismatched anonymous define() module: [object Object]
http://requirejs.org/docs/errors.html#mismatch
   at makeError (vendor-bundle.js:11531)
   at intakeDefines (vendor-bundle.js:12617)
   at vendor-bundle.js:12815
makeError @ vendor-bundle.js:11531
intakeDefines @ vendor-bundle.js:12617
(anonymous) @ vendor-bundle.js:12815
setTimeout (async)
req.nextTick @ vendor-bundle.js:13178
localRequire @ vendor-bundle.js:12812
requirejs @ vendor-bundle.js:13160
(anonymous) @ vendor-bundle.js:13199
(anonymous) @ vendor-bundle.js:13508

可能这些版本在 fedoranimus 上已经过时了 github (https://github.com/fedoranimus/aurelia-gojs)。

我通过使用带有 webpack 和 typescript 的 cli(au new)创建一个新项目,然后 npm 安装了 gojs(版本“^1.8.15”),然后从 fedoranimus 复制了相关代码。

为了消除这里的一些混淆,你说的是在 aurelia.json 中声明依赖关系,这意味着你正在使用 aurelia-cli 与 requirejs 装载机.

jmdavid 的回答提到了 webpack,这是一个完全不同的野兽。您没有在 aurelia.json 中声明依赖项; webpack 通过它在您的入口文件中找到的导入自行解决这些问题。出于各种原因,我实际上建议切换到 webpack;它会修复错误的事实只是其中之一。

该错误可能是由 go.js 模块被加载 两次 引起的。错误在第二次加载时抛出;无论错误如何,它都应该仍然有效。您不能使用 requirejs 以任何直接的方式使错误消失,这是由于 go.js 版本的打包方式所致。

这里加载 go.js 的唯一 error-free 方法是在 加载 requirejs 之前这样做 。在 aurelia.json:

"node_modules/gojs/release/go.js",
"node_modules/requirejs/require.js"

然后也不需要导入它,它将在全球范围内可用。