Dojo Custom Build 1.6 в одном файле
У меня проблема с попыткой создать пользовательскую сборку в Dojo, я даже не знаю, возможно ли то, что я хочу..
Я хочу, чтобы "один файл JS" загружал все компоненты, которые я использую в приложении. поэтому он не загружает несколько файлов, один из которых содержит то, что мне нужно, или, по крайней мере, только те, которые мне нужны.
Насколько я прочитал, мне нужно создать профиль для этой сборки, это профиль, который я использую (файл в папке с профилями, например: 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
это создает мне папку "release" внутри, если я нахожу папку dojo -> dojo, dijit, dojox и внутри dojo -> test_dojo.js
Я копирую содержимое релиза в приложение и заменяю тег script в html файлах.
<script src="/dojo_release/dojo/test_dojo.js" type="text/javascript"
djconfig="usePlainJson: true,parseOnLoad: true"></script>
но получите ошибку: "додзё не определено в строке 14"
и если я пытаюсь загрузить додзе, а затем этот файл:
<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 " "
это, может быть, основной вопрос, я тихо знаком с додзё и более с пользовательской сборкой.
У меня есть правильный профиль или в чем может быть проблема здесь, что я делаю не так.
1 ответ
Вам не нужен флаг 'customBase', чтобы сделать это. Вы можете просто переопределить файл dojo.js с его текущим содержимым _plus некоторыми вашими кэшированными модулями.
dependencies ={
selectorEngine: "acme",
layers: [
{
name: "../dojo/dojo.js",
dependencies: [
...
]
}
}