2

我有一个示例脚本,它使用

dojo.require("dojo.parser");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.layout.TabContainer");
dojo.require("dojox.grid.DataGrid");
dojo.require("dijit.Tree");
dojo.require("dojo.data.ItemFileReadStore");

我想创建一个缩小版的 dojo,所以我使用了这个配置文件

dependencies = {
    stripConsole    : "normal",
    selectorEngine  : "acme",
    optimize        : "closure",
    layerOptimize   : "closure",
    cssOptimize     : "comments.keepLines",
    mini            : true,
    internStrings   : true,
    localeList      : "en-us",
    releaseName     : "dojo.custom",
    action          : "release",
    optimize        : "shrinksafe",
    layerOptimize   : "shrinksafe",

    layers : [
        {
            name         : "dojo.js",
            dependencies : [ 
                "dojo.parser",
                "dojo.data.ItemFileReadStore",
                "dojox.grid.DataGrid",
                "dijit.layout.BorderContainer",
                "dijit.layout.ContentPane",
                "dijit.layout.TabContainer",
                "dijit.Tree"
            ]
        }
    ],
    prefixes: [ [ "dijit", "../dijit" ], [ "dojox", "../dojox" ] ]
}

是的,构建器编译了我包含在我的 html 页面中的巨大 dojo.js 文件,但仍然有许多 xhr 请求。系统加载我没有明确使用的脚本。这是一个屏幕截图

4

1 回答 1

2

有趣的。

您确定浏览器已成功找到并加载压缩版本吗?

浏览器正在寻找 _base.js,它肯定应该已经被烘焙到该文件中。

更新

Tommi - dojo.js 层始终由构建系统构建,您不必显式声明它。我不确定您将其与依赖项一起明确声明会产生什么影响。这可能有效,但可能无效。也许依赖项覆盖了正常的 dojo.js 内容。

我通常所做的只是让系统构建 dojo.js,然后创建一个包含我可能想要的所有 dijit/dojox 内容的层,然后部署它。我通常还会创建一个第三个单独的文件,其中包含我的自定义内容。

我会试试的。我认为关键是从 dojo.js 中创建一个单独的层。(但仍然在您的页面中包含正常的 dojo.js)。

于 2012-03-02T02:02:50.780 回答