我们有一个 Backbone 应用程序,它共享大量视图和模型,但并非所有客户端都具有所有导航点,并且某些模型的行为不同。
因此,首先我们为每个客户端设置一个 require 入口点和一个 require.config。
引导-client1.js
requirejs.config({
baseUrl: 'js/cfe/app',
paths: {
'common/ViewA': 'clients/client1/ViewA',
'common/ModelB': 'clients/client1/ModelB',
'common/ColletionC': 'clients/client1/CollectionC'
}
});
requirejs([
'common/App',
'common/BaseSetup'],
function(app, BaseSetup) {
$(function() {
BaseSetup.start();
app.start();
});
}
);
因此,稍后当我们使用需要ModelB
它的共享视图时,将替换为我们的client1/ModelB
实现。
对于生产,我们使用 r 编译器为每个客户端构建一个单独的编译版本,并data-main
在客户端请求 html 文件时更改 html 文件中属性的来源。