加载外部脚本时,匿名定义()模块不匹配

Mismatched anonymous define() modules when loading external scripts

本文关键字:定义 模块 不匹配 外部 脚本 加载      更新时间:2023-09-26

是的,我知道,这种问题已经被问了太多次了。但我有一个小细节需要澄清。

我们在正文中有一个脚本标签:

<script type="text/javascript" data-main="/js/app.87d28433.js" src="/js/external/requirejs/require.js"></script>

我们使用requirejs-api加载googleTagManager:

require(["//www.googletagmanager.com/gtm.js"], function () { ... })

然而,我们无法控制GTM加载的脚本以及如何加载它们。因此,最终,我们在主体中获得了许多脚本标记,这些标记加载脚本,如FingerprintJS,它们声明匿名定义模块。

是否可以以任何方式绕过此行为并保持requirejs活动

再一次,我们无法控制GTM加载脚本的内容和方式。

只需为require.js错误添加错误处理程序:

requirejs.onerror = function() {
    // do your error hadling stuff but don't throw exception!
}

(thanx to@maestro)