dojo - 支离 splinter 的 Dojo 构建文档

标签 dojo

我正在寻找一种方法来自动从其他层中排除公共(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/

相关文章:

javascript - Dojo dojoType "dijit.form.DateTextBox": can it display a "Today" button?

javascript - DOJO JsonRest - onClick 后无法更改目标 URL

javascript - Dojo:以编程方式设置复选框标签

javascript - 道场要求和范围

javascript - Kendo AutoComplete + AngularJS + 对象数组

javascript - 删除DataGrid(Dojo)实例和表(DataGrid)正确显示

javascript - 在 dojo 中单击按钮时启用复选框

javascript - Dojo - 在 header 外添加外部样式表

javascript - 如何重置 dojo CheckedMultiSelect

javascript - Dojo JS ToggleButton 显示为已启用但不允许单击/切换和悬停轮廓