我不知道为什么会出现这个奇怪的错误:
"匿名define()模块不匹配: function(){"use strict";return axe} http://requirejs.org/docs/errors.html#mismatch"
在设置了一些JS断点之后,我找到了错误源代码:
a [browserlink] Line 363:
/*! aXe v2.0.5
* Copyright (c) 2016 Deque Systems, Inc.
* ...etc... */
...etc...&&define([],function(){"use strict";return axe}),...etc...
因此,我意识到问题出在动态生成的“browserlink”代码中,于是我在Visual Studio中禁用了“browserlink”,问题就解决了(一切都完美,没有问题)。似乎function(){"use strict";return axe}
被卡在了requirejs队列中('defQueue'),这发生在Web应用程序首次启动时,但尚未出现任何错误。只有在稍后执行使用requirejs的操作时才会出现错误。经过一些分析,我发现requirejs中的这个调用:
//Grab defines waiting in the global queue.
intakeDefines();
这里出现了错误:
while (defQueue.length) {
args = defQueue.shift();
if (args[0] === null) {
return onError(makeError('mismatch', 'Mismatched anonymous define() module: ' + args[args.length - 1]));
其中 args == [null,[],"function(){"use strict";return axe}"]。
问题是,有人能帮我弄清为什么会存在这种冲突吗?这是VS浏览器链接的某种错误吗?