我有一个关于requireJS和ie8的错误:
Mismatched anonymous define() module
此错误仅出现在IE8中。
我知道原点:
我使用HTML评论添加了es5shim和json3库,如下所示:
<!--[if lt IE 9]>
<script src="bower_components/es5-shim/es5-shim.js"></script>
<script src="bower_components/json3/lib/json3.min.js"></script>
<![endif]-->
事实上似乎es5shim和json3使用了define()函数。这是错误的起源。
我可以解决它删除HTML注释并在requirejs中像其他一样加载这些库。
但我不会只为IE8提供这些图书馆!
我不知道该怎么做!!
Thx guys
答案 0 :(得分:1)
我找到了解决方案。事实上,es5shim和json3使用define()函数来实现AMD兼容性。
但我必须通过HTML评论将它们从requirejs中加载出来:
<!--[if lt IE 9]>
<script src="bower_components/es5-shim/es5-shim.js"></script>
<script src="bower_components/json3/lib/json3.min.js"></script>
<![endif]-->
问题是我在data-main
:
<!-- build:js scripts/amd-app.js -->
<script src="bower_components/requirejs/require.js" data-main="/scripts/main" </script>
<!-- endbuild -->
<!--[if lt IE 9]>
<script src="bower_components/es5-shim/es5-shim.js"></script>
<script src="bower_components/json3/lib/json3.min.js"></script>
<![endif]-->
所以它失败了。如果我在data-main
之前发表评论:
<!--[if lt IE 9]>
<script src="bower_components/es5-shim/es5-shim.js"></script>
<script src="bower_components/json3/lib/json3.min.js"></script>
<![endif]-->
<!-- build:js scripts/amd-app.js -->
<script src="bower_components/requirejs/require.js" data-main="/scripts/main" </script>
<!-- endbuild -->