2016-07-26 54 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