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: [
         ...
      ]
  }
}
Другие вопросы по тегам