我在 Dojo 构建中有大量依赖项,即使在构建之后,仍然由 HTTP 请求加载。我的应用程序有特定的依赖项:
"dijit/_base",
"dijit.form.TimeTextBox",
"dijit/Dialog",
"dijit/DropDownMenu",
"dijit/focus",
"dijit/form/Button",
"dijit/form/CheckBox",
"dijit/form/ComboBox",
"dijit/form/ComboButton",
"dijit/form/DropDownButton",
"dijit/form/FilteringSelect",
"dijit/form/MultiSelect",
"dijit/form/NumberSpinner",
"dijit/form/Select",
"dijit/form/SimpleTextarea",
"dijit/form/TextBox",
"dijit/layout/BorderContainer",
"dijit/layout/ContentPane",
"dijit/layout/LayoutContainer",
"dijit/Menu",
"dijit/MenuItem",
"dijit/ProgressBar",
"dijit/registry",
"dijit/Widget",
"dojango.dojango",
"dojo.data.ItemFileReadStore",
"dojo.date.locale",
"dojo.dnd.Source",
"dojo.parser",
"dojo/_base",
"dojo/_base/array",
"dojo/_base/declare",
"dojo/_base/Deferred",
"dojo/_base/event",
"dojo/_base/kernel",
"dojo/_base/window",
"dojo/_base/xhr",
"dojo/data/ObjectStore",
"dojo/dom",
"dojo/dom-construct",
"dojo/dom-style",
"dojo/domReady",
"dojo/html",
"dojo/json",
"dojo/keys",
"dojo/mouse",
"dojo/node",
"dojo/NodeList-manipulate",
"dojo/on",
"dojo/parser",
"dojo/query",
"dojo/ready",
"dojo/request",
"dojo/request/node",
"dojo/request/registry",
"dojo/store/JsonRest",
"dojo/store/Memory",
"dojo/store/Observable",
"dojo/store/util/QueryResults",
"dojo/when",
"dojo/window",
"dojox.data.QueryReadStore",
"dojox/charting/action2d/Magnify",
"dojox/charting/action2d/MoveSlice",
"dojox/charting/action2d/Tooltip",
"dojox/charting/axis2d/Default",
"dojox/charting/Chart",
"dojox/charting/Chart2D",
"dojox/charting/DataChart",
"dojox/charting/plot2d/Grid",
"dojox/charting/plot2d/Lines",
"dojox/charting/plot2d/Markers",
"dojox/charting/plot2d/Pie",
"dojox/charting/StoreSeries",
"dojox/charting/themes/Claro",
"dojox/charting/widget/Chart2D",
"dojox/charting/widget/Legend",
"dojox/data/JsonRestStore",
"dojox/form/Uploader",
"dojox/gfx/utils",
"dojox/grid/DataGrid",
"dojox/lang/functional/object",
"gridx/core/model/cache/Async",
"gridx/Grid",
"gridx/modules/ColumnResizer",
"gridx/modules/extendedSelect/Cell",
"gridx/modules/extendedSelect/Row",
"gridx/modules/Filter",
"gridx/modules/filter/FilterBar",
"gridx/modules/HeaderMenu",
"gridx/modules/NestedSort",
"gridx/modules/Pagination",
"gridx/modules/pagination/PaginationBar",
"gridx/modules/select/Row",
"gridx/modules/SingleSort",
"gridx/modules/VirtualVScroller",
"gridx/support/exporter/toCSV"
但是即使知道所有这些依赖项,我似乎也无法获得一个实际上包含我需要的每个依赖项的构建。例如,这是 chrome 调试器的片段:
如何将所有内容编译成一个 js 文件?或者它不是那样工作的?我对 dojo 的要求如何工作感到很困惑。它还尝试将所有 css 文件拉入. 有什么方法可以将这些 css 文件编译成一些东西,这样我就没有 30 个包含 css 文件的内容了吗?
如果您需要更多信息,请与我们联系。如果有任何改变,我正在使用 Dojango 来管理 dojo 交互,但是构建过程是相同的,所以我很确定它不会。我的完整构建配置文件只是 dojango 的扩展,这里列出:
dependencies = {
layers: [
{
name: "dojo.js",
layerDependencies: [
"../dijit/dijit.js"
],
dependencies: [
"chosen/Chosen",
"dijit.dijit-all",
"dijit/_base",
"dijit.form.TimeTextBox",
"dijit/Dialog",
"dijit/DropDownMenu",
"dijit/focus",
"dijit/form/Button",
"dijit/form/CheckBox",
"dijit/form/ComboBox",
"dijit/form/ComboButton",
"dijit/form/DropDownButton",
"dijit/form/FilteringSelect",
"dijit/form/MultiSelect",
"dijit/form/NumberSpinner",
"dijit/form/Select",
"dijit/form/SimpleTextarea",
"dijit/form/TextBox",
"dijit/layout/BorderContainer",
"dijit/layout/ContentPane",
"dijit/layout/LayoutContainer",
"dijit/Menu",
"dijit/MenuItem",
"dijit/ProgressBar",
"dijit/registry",
"dijit/Widget",
"dojango.dojango",
"dojo.data.ItemFileReadStore",
"dojo.date.locale",
"dojo.dnd.Source",
"dojo.parser",
"dojo/_base",
"dojo/_base/array",
"dojo/_base/declare",
"dojo/_base/Deferred",
"dojo/_base/event",
"dojo/_base/kernel",
"dojo/_base/window",
"dojo/_base/xhr",
"dojo/data/ObjectStore",
"dojo/dom",
"dojo/dom-construct",
"dojo/dom-style",
"dojo/domReady",
"dojo/html",
"dojo/json",
"dojo/keys",
"dojo/mouse",
"dojo/node",
"dojo/NodeList-manipulate",
"dojo/on",
"dojo/parser",
"dojo/query",
"dojo/ready",
"dojo/request",
"dojo/request/node",
"dojo/request/registry",
"dojo/store/JsonRest",
"dojo/store/Memory",
"dojo/store/Observable",
"dojo/store/util/QueryResults",
"dojo/when",
"dojo/window",
"dojox.data.QueryReadStore",
"dojox/charting/action2d/Magnify",
"dojox/charting/action2d/MoveSlice",
"dojox/charting/action2d/Tooltip",
"dojox/charting/axis2d/Default",
"dojox/charting/Chart",
"dojox/charting/Chart2D",
"dojox/charting/DataChart",
"dojox/charting/plot2d/Grid",
"dojox/charting/plot2d/Lines",
"dojox/charting/plot2d/Markers",
"dojox/charting/plot2d/Pie",
"dojox/charting/StoreSeries",
"dojox/charting/themes/Claro",
"dojox/charting/widget/Chart2D",
"dojox/charting/widget/Legend",
"dojox/data/JsonRestStore",
"dojox/form/Uploader",
"dojox/gfx/utils",
"dojox/grid/DataGrid",
"dojox/lang/functional/object",
"gridx/core/model/cache/Async",
"gridx/Grid",
"gridx/modules/ColumnResizer",
"gridx/modules/extendedSelect/Cell",
"gridx/modules/extendedSelect/Row",
"gridx/modules/Filter",
"gridx/modules/filter/FilterBar",
"gridx/modules/HeaderMenu",
"gridx/modules/NestedSort",
"gridx/modules/Pagination",
"gridx/modules/pagination/PaginationBar",
"gridx/modules/select/Row",
"gridx/modules/SingleSort",
"gridx/modules/VirtualVScroller",
"gridx/support/exporter/toCSV",
]
}
],
prefixes: [
[ "dijit", "../dijit" ],
[ "dojox", "../dojox" ],
[ "dojango", "../../../dojango" ], // relative to the directory, where the dojo.js source file resides
[ "gridx", "../../../gridx" ],
[ "app", "../../../app" ],
[ "chosen", "../../../chosen" ]
]
};
我的构建命令基本上如下,虽然它是由 dojango 完成的:
./build.sh dojango_optimized.profile.js action=release optimize=shrinksafe cssOptimize=comments