首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >不匹配的匿名定义()模块

不匹配的匿名定义()模块
EN

Stack Overflow用户
提问于 2013-03-13 04:53:46
回答 8查看 225.9K关注 0票数 138

当我第一次浏览我的webapp时(通常是在禁用缓存的浏览器中),我得到了这个错误。

错误:匿名定义()模块不匹配: 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
    });
});

有人知道这个错误的确切含义和发生的原因吗?

source file,github问题页面中关于它的short discussion

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2014-05-05 15:28:52

就像AlienWebguy说的,根据文档,require.js can blow up if

  • 您在自己的脚本标记中有一个匿名定义(“调用

()的模块没有字符串ID") (我假设它们实际上指的是全局范围内的任何地方)

  • 您有名称冲突的模块
  • 您使用加载器插件或匿名模块,但不要使用

.js的优化器将它们捆绑在一起

在包含使用browserify和require.js模块构建的包时,我遇到了这个问题。解决方案是:

A.在加载require.js之前,将不需要的.js独立包加载到脚本标记中,或者

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

票数 149
EN

Stack Overflow用户

发布于 2016-10-14 08:59:26

在开始使用require.js时,我遇到了这个问题,作为一个初学者,docs可能也是用希腊语编写的。

我遇到的问题是,大多数初学者示例使用“匿名定义”,而您应该使用“字符串id”。

匿名定义

define(function() {
        return { helloWorld: function() { console.log('hello world!') } };
 })
    
  
define(function() {
        return { helloWorld2: function() { console.log('hello world again!') } };
 })

使用字符串id定义

define('moduleOne',function() {
    return { helloWorld: function() { console.log('hello world!') } };
})

 define('moduleTwo', function() {
      return { helloWorld2: function() { console.log('hello world again!') } };
})

当你使用带有字符串id定义时,当你尝试像这样使用模块时,你将会避免这个错误:

require([ "moduleOne", "moduleTwo" ], function(moduleOne, moduleTwo) {
    moduleOne.helloWorld();
    moduleTwo.helloWorld2();
});
票数 17
EN

Stack Overflow用户

发布于 2014-08-12 05:58:20

我之所以出现这个错误,是因为我在脚本标记中直接包含requirejs文件和其他库。这些库(如lodash)使用的定义函数与require的定义冲突。requirejs文件是异步加载的,所以我怀疑require的定义是在其他库定义之后定义的,因此出现了冲突。

要消除此错误,请使用requirejs将所有其他js文件包含在内。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15371918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档