匿名的define()模块不匹配 [英] Mismatched anonymous define() module
问题描述
我第一次浏览 webapp 时(通常是在已禁用缓存的浏览器中)出现此错误。
I'm getting this error when I browse my webapp for the first time (usually in a browser with disabled cache).
错误:不匹配的匿名define()模块:function(require){
Error: Mismatched anonymous define() module: function (require) {
HTML :
<html>
.
.
.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script> var require = { urlArgs: "v=0.4.1.32" }; </script>
<script data-main="assets/js/main" src="assets/js/libs/require.js"></script>
<script src="assets/js/ace/ace.js?v=0.4.1.32"></script>
</body>
</html>
JS :
$(function () {
define(function (require) {
// do something
});
});
无论如何,知道这个错误究竟是什么意思及其发生的原因?
Anyway know what exactly this error mean and why its happening?
推荐答案
就像AlienWebguy所说,根据文档, require.js可能会爆炸,如果
Like AlienWebguy said, per the docs, require.js can blow up if
- 你有一个匿名的定义(模块调用define(),没有字符串ID )在自己的脚本标签中(我认为它们实际上意味着全球范围内的任何地方)
- 您的模块名称冲突
- 您使用加载程序插件或匿名模块但不要'使用require.js的优化器捆绑它们
- You have an anonymous define ("modules that call define() with no string ID") in its own script tag (I assume actually they mean anywhere in global scope)
- You have modules that have conflicting names
- You use loader plugins or anonymous modules but don't use require.js's optimizer to bundle them
我遇到了这个问题,同时包含了使用browserify和require.js模块一起构建的bundle。解决方案是:
I had this problem while including bundles built with browserify alongside require.js modules. The solution was to either:
A。在加载require.js之前加载脚本标记中的非require.js独立包,或
A. load the non-require.js standalone bundles in script tags before require.js is loaded, or
B.使用require.js(而不是脚本标记)加载它们
B. load them using require.js (instead of a script tag)
这篇关于匿名的define()模块不匹配的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!