我是新的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