我是新的RequireJS,但似乎打磚牆。RequireJS loading葉模塊
麻煩從我的「app」模塊開始。我不知道如何告訴RequireJS加載我的葉模塊 - 依賴於「app」的軟件包。
我想我理解爲什麼 - 因爲系統中沒有任何東西依賴於它們,它們也沒有在任何地方註冊,但我需要處理這種情況。
如何讓RequireJS知道這些模塊並正確加載它們?
乾杯
//index.html
....
<script data-main="app/config" src="/assets/js/libs/require.js"></script>
....
//config.js
require.config({
deps: [ "app" ],
paths: {
libs: "../assets/js/libs",
plugins: "../assets/js/plugins",
jquery: "../assets/js/libs/jquery",
underscore: "../assets/js/libs/underscore",
backbone: "../assets/js/libs/backbone",
marionette: "../assets/js/libs/backbone.marionette"
}
});
//app.js
require(
[ "jquery", "underscore", "backbone", "marionette" ],
function ($, _, Backbone, Marionette) {
//....
}
);
//app.view.js
require(
[ "jquery", "underscore", "backbone", "marionette", "app" ],
function ($, _, Backbone, Marionette, App) {
//....
}
);
//app.route.js
require(
[ "backbone", "app" ],
function (Backbone, App) {
//....
}
);
因此:
- app.js取決於 「jQuery的」, 「下劃線」, 「骨幹」, 「提線木偶」
- app.view.js取決於「jquery」,「undercore」,「backbone」,
- 「marionette」,「app」app.route.js依賴於「backbone」,「app」
好吧,我明白了。但問題是,我如何讓RequireJS知道app.view.js和app.route.js?由於require(['app']),系統知道應用程序,但沒有任何關於app.view.js和app.route.js的知識,因此它們不會被加載,只有app被加載。 –
任何你想加載你需要或定義的東西。所以你對app.view.js和app.route.js也一樣。通常的模式是,你初始化所有你需要在app.js中啓動你的應用程序。所以在app.js中,你需要在你的define語句中創建一個你定義的新實例,例如'define(['app.route.js','app.view.js'],function(appRoute ,appView){var route = new appRoute(); var mainView = new appView();}' – nimrod