我正在寻找一种方法来自动从其他层中排除公共(public)层中包含的模块,以减少构建中的重复代码量。在进行谷歌搜索时,我遇到了来自 https://dojotoolkit.org/reference-guide/1.8/build/profiles.html?highlight=layerdependencies 的“layerDependency” 。在此之前,我一直在查看 writeAMD 文档 enter link description here 。这两个页面似乎都是针对 Dojo 1.8 的,但包含了层定义中可以包含的内容的似乎互斥的定义(例如“copyright”与“copyrightFile”)。
我的直觉告诉我其中一个文档已经过时,应该被弃用,可悲的是,我的直觉也告诉我这可能是前一个链接。然而,当与 writeAMD 的语法混合时,layerDependency 在我的构建中起作用。
这两个文件都有效吗?
最佳答案
你是对的,layerDependency
是旧的(1.7 之前)构建系统的一部分。当前的构建代码将 layerDependencies
移至 exclude
。
util\build\v1xProfiles.js
layer.exclude = transformLayerDependencies(layer.layerDependencies, layer.name);
这是我在创建构建时使用的教程。
http://dojotoolkit.org/documentation/tutorials/1.8/build/
编辑 - 澄清我对排除属性的使用
排除是要排除的模块数组,而不是层。因此,在配置文件中,我定义了一个包含一组模块的变量,
var profile = (function(){
var coreRequires = [
"dojo/_base/declare",
"dojo/_base/fx",
"dojo/_base/lang",
"dojo/currency",
"dojo/fx",
"dojo/number",
"dojo/on",
"dojo/query"
];
...
然后,我在定义图层的包含和排除时使用此变量。
layers: {
"myApp/core": {
include: coreRequires
},
"myApp/appLayer1": {
include: [
"myApp/CustomWidget1",
"myApp/CustomWidget2",
...
],
exclude: coreRequires
}
}
关于dojo - 支离 splinter 的 Dojo 构建文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15486468/