我们有两个不同版本的dojo应用程序,使用包含dojo应用程序构建配置文件的ourapp.profile.js
或ourapp.custom.profile.js
。
除layers
属性中的一些差异外,这两个文件的其余部分实际上是相同的。分享这两个文件之间共同设置的最佳方式是什么?
这是我们的应用程序配置文件的简化示例
var profile = (function () {
'use strict';
return {
basePath: "../",
releaseDir: "../../../build",
releaseName: "js",
action: "release",
dirs: ["../css", "../css/font", "../img", "../img/icons", "../stylus/themes/common"],
packages: [
{
name: "dbootstrap",
location: "dbootstrap"
},
{
name: "dgrid",
location: "dgrid"
},
{
name: "dstore",
location: "dstore"
},
{
name: "dijit",
location: "dijit"
},
{
name: "dojo",
location: "dojo"
},
{
name: "dojox",
location: "dojox"
},
{
name: "ourapp",
location: "ourapp"
},
{
name: "lib",
location: "lib"
},
{
name: "xstyle",
location: "xstyle"
},
{
name: "specs",
location: "specs"
}
],
layers: {
"dojo/dojo": {
include: [
"dojo/dojo",
"dojo/i18n",
"dojo/domReady",
"ourapp/boot",
// more includes
...
],
customBase: true,
boot: true,
},
// other layers
...
},
layerOptimize: "closure",
optimize: "closure",
cssOptimize: "comments",
mini: 1,
stripConsole: "warn",
selectorEngine: "lite",
insertAbsMids: false,
staticHasFeatures: {
"config-deferredInstrumentation": 0,
// More settings
..
},
defaultConfig: {
hasCache: {
"dojo-built": 1,
"dojo-loader": 1,
"dom": 1,
"host-browser": 1,
"config-selectorEngine": "lite"
},
async: 1
}
};
})();

理想情况下,我们希望两个文件共享一组常用设置,并指定我们的2个应用程序配置文件中不同的部分。
This page讨论了多个配置文件来源,因此我尝试将公共部分拆分为另一个配置文件,然后构建运行类似:
>build.bat --profile ourapp.shared.profile.js --profile ourapp.profile.js
或
>build.bat --profile ourapp.shared.profile.js --profile ourapp.custom.profile.js
有没有人尝试类似的东西?
答案 0 :(得分:0)
问题更新中建议的方法确实有效,但没有很好地记录如何组合或替换不同的配置文件属性,因此需要进行一些试验和错误,因为某些属性的处理方式不同。
我们现在所拥有的是问题(ourapp.profile.js)和ourapp.custom.profile.js中显示的个人资料如下:
var profile = (function () {
'use strict';
return {
basePath: "../",
releaseName: "js-custom",
packages: [
{
name: "ourapp",
location: "ourapp-custom"
}}
]
};
})();
现在,对于我们的自定义构建,我们从命令行运行它:
build.bat --profile ourapp.profile.js --profile ourapp.custom.profile.js
ourapp.custom.profile.js中的属性会替换ourapp.profile.js中的属性,将版本名称更改为“js-custom”,并将标准的ourapp软件包替换为ourapp-custom中的备用软件包。