2016-07-26 83 views
0

enter image description here为什么它不能加载requirejs模块?

我的目录结构类似于上面, 我挂了脚本的index.html像
<script src="lib/requirejs/require.js" data-main="js/app.js"></script>

和js/app.js是继

require.config({ 
    paths : { 
    'backbone' : 'lib/backbone/backbone-min.js', 
    'underscore' : 'lib/underscore/underscore-min.js', 
    'jquery' : 'lib/jquery/jquery.min.js', 
    'bootstrap' : 'lib/bootstrap/bootstrap.min.js', 
    }, 
    shim : { 
    bootstrap : { 
     deps : 'jquery' 
    }, 

    backbone : { 
     deps : ['jquery', 'underscore'], 
     exports : 'Backbone' 
    }, 
    underscore : { 
     exports : '_' 
    } 
    } 
}); 

require(['bootstrap'], function (bootstrap) { 
    console.log('loaded') 
}) 

这不可能加载引导程序。 控制台的日志是Uncaught Error: Invalid require call

回答

0

正如所解释的in the documentationInvalid require call当你喜欢一个呼叫生成:

require("foo", function() {...}) 

这是无效的,因为你应该在第一个参数字符串数组。或者如果你使用CommonJS糖,那么你不应该有一个回调。

没有require在你显示的代码中调用了上面的代码。您必须检查您的代码库以查找导致错误的调用实例。您可以搜索文件的文本。如果证明太困难了,你可以改变你的代码来加载越来越少的模块,直到错误消失,然后逐个添加模块,直到错误恢复。这将允许缩小一系列可能性。

我已经使用了您在问题中显示的每个库,但是他们没有一个导致您报告的错误。要么你下载了这些库的错误构建,要么你在别处导致错误的自定义代码。

+0

谢谢,我解决了这个问题。发生此错误的原因是,在'bootstrap'键中,'deps'值必须是依赖关系的数组。不是字符串,虽然模块需要有一个模块。像'deps:['jquery']' – fasdgoc