一尘不染

匿名define()模块不匹配

javascript

首次浏览Web应用程序时(通常在禁用缓存的浏览器中),我收到此错误。

错误:匿名define()模块不匹配:函数(要求){

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
    });
});

谁能确切知道此错误的含义以及发生的原因?


阅读 290

收藏
2020-04-25

共1个答案

一尘不染

就像AlienWebguy说,每文档,require.js可以炸毁如果

  • 您在自己的脚本标签中有一个匿名的define(“ 调用define()的模块,没有字符串ID ”)(我假设它们实际上意味着全局范围内的任何地方)
  • 您有名称冲突的模块
  • 您使用加载程序插件或匿名模块,但不使用require.js的优化程序将它们捆绑在一起

在包含用browserify构建的捆绑包以及require.js模块时遇到了这个问题。解决方案是:

A.在加载require.js 之前, 将非require.js独立捆绑软件加载到脚本标记中,或者

B.使用require.js(而不是脚本标签)加载它们

2020-04-25