我在尝试在Dojo上创建自定义构建时遇到问题,我甚至不知道它可能是我想要的......
我希望有一个“单个js文件”加载我在整个应用程序中使用的所有组件。所以它不会加载几个文件,只包含我需要的文件,或者至少只是我需要的文件。
据我所知,我需要为此版本创建一个配置文件,这是我使用的配置文件(配置文件文件夹ex:test.profiles.js中的文件)。
dependencies ={
layers: [
{
name: "test_dojo.js",
customBase: true,
selectorEngine: "acme",
dependencies: [
"dojo/dojo",
"dijit.form.Form",
"dijit.form.Button",
"dijit.form.Textarea",
"dojo.parser",
"dijit.form.MultiSelect",
"dijit.layout.ContentPane",
"dijit.layout.BorderContainer",
"dijit.Toolbar",
"dijit.form.TextBox",
"dijit.form.SimpleTextarea",
"dijit.form.ComboBox",
"dojo.date",
"dojo.date.locale",
"dijit.form.DateTextBox",
"dijit.layout.TabContainer",
"dojo.data.ItemFileReadStore",
'dijit.Dialog',
"dojox.grid.DataGrid",
"dijit.form.DropDownButton",
"dijit.form.CheckBox",
"dijit.form.FilteringSelect",
"dijit.form.NumberTextBox",
"dijit.Tree",
"dojox.charting.Chart2D",
"dojox.charting.widget.Legend",
"dojox.charting.action2d.Tooltip",
"dojox.charting.action2d.Magnify",
"dojox.charting.themes.PlotKit.green",
"dojox.charting.themes.PlotKit.red",
"dojox.charting.themes.PlotKit.blue",
"dojox.widget.Standby",
"dojox.form.Uploader",
"dojox.form.uploader.plugins.IFrame",
"dojox.form.uploader.FileList",
"dijit.ProgressBar",
"dojox.embed.Flash",
"dijit.Tooltip",
"dojox.cometd",
"dijit._base.scroll"
]
}
],
prefixes: [
[ "dijit", "../dijit" ],
[ "dojox", "../dojox" ]
]
};
我这样跑: > build.bat profile = test action = release
如果我找到了dojo,那么这会生成文件夹“release” - > dojo,dijit,dojox文件夹和里面的dojo - > test_dojo.js我将发布的内容复制到应用程序中,并替换html文件中的脚本标记。
<script src="/dojo_release/dojo/test_dojo.js" type="text/javascript"
djconfig="usePlainJson: true,parseOnLoad: true"></script>
但得到错误:“第14行未定义dojo”
如果我尝试加载dojo然后加载此文件:
<script src="/dojo_release/dojo/dojo.js" type="text/javascript"
djconfig="usePlainJson: true,parseOnLoad: true"></script>
<script src="/dojo_release/dojo/psirt_dojo.js" type="text/javascript"></script>
我调试应用程序,并试图加载几个文件(就像以前一样)并得到错误,例如“无法加载'dijit.form.Form';最后尝试'../dijit/form/Form .js'“
这可能是一个基本的问题,即使是使用dojo的新功能,还有更多自定义构建内容。
我是否更正了个人资料或这里可能出现的问题,我做错了什么。
答案 0 :(得分:2)
您不需要'customBase'标志来执行此操作。您可以简单地使用当前内容_plus覆盖dojo.js文件,使用自己的一些缓存模块。
dependencies ={
selectorEngine: "acme",
layers: [
{
name: "../dojo/dojo.js",
dependencies: [
...
]
}
}