我在示例演示应用中使用requireJS。这是我的代码:
require({
paths: {
ToDoModel: '/Scripts/ToDoModel.min',
ToDo: '/Scripts/ToDo.min',
ToDoService: '/Scripts/ToDoService.min'
}
}, ['ToDo'], function (ToDo) {
ko.applyBindings(new ToDo(), $('#toDo')[0]);
}
);
我知道在应用加载后我需要一些文件。因此,我想将ToDoModel,ToDo和ToDoService全部合并到一个文件中,然而define
将它们分开,如下所示:
define('ToDoModel', [], function () {
ToDoModel = function (data) {
ko.mapping.fromJS(data, {}, this);
}
return ToDoModel;
});
所有时刻都在单独的文件中,您可以在paths属性中看到。
答案 0 :(得分:2)
RequireJS不要求define
次呼叫位于不同的文件中。只是在开发中“一个文件,一个模块(即一个define
)”工作得很好。实际上,RequireJS优化器(r.js
)在优化期间将多个define
调用组合到一个文件中。没问题。
您在问题中显示的设置对我来说就像开发设置一样。通常,在开发中,我们将RequireJS加载模块作为单独的文件,而不是缩小。 (您的示例建议您加载中等代码。)对于部署,我们使用r.js
将各种模块缩小并连接到RequireJS加载的一个文件中。
根据您在问题中显示的内容,如果您没有使用缩小文件,则可以使用如下配置:
{
baseUrl: "/Scripts"
}
并且RequireJS将能够根据他们的名字找到您的单个模块,因为他们的名字中不会有.min
。