我找到了解决方案。事实上 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 -->