Dojo Custom Build 1.6 到单个文件中

标签 dojo dojo-build

我在尝试在 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

如果我找到 dojo -> dojo、dijit、dojox 文件夹和 dojo -> test_dojo.js 内部,这会生成文件夹“release”

我将发布内容复制到应用程序中并替换 html 文件中的脚本标记。

<script src="/dojo_release/dojo/test_dojo.js" type="text/javascript" 
djconfig="usePlainJson: true,parseOnLoad: true"></script>

但收到错误:“dojo 未在第 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'"

这可能是一个基本问题,我对 dojo 以及更多自定义构建内容都很陌生。

我的配置文件是否正确,或者这里可能存在什么问题,我做错了什么。

最佳答案

您不需要“customBase”标志来执行此操作。您可以简单地使用当前内容以及您自己的一些缓存模块覆盖 dojo.js 文件。

dependencies ={
  selectorEngine: "acme",
  layers:  [
      {
      name: "../dojo/dojo.js",
      dependencies: [
         ...
      ]
  }
}

关于Dojo Custom Build 1.6 到单个文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11917391/

相关文章:

javascript - 使用 Bower 的 dojo-util 包自定义 dojo 构建

javascript - DOJO Build 如何创建图层?

dojo.query 不适用于包含波浪号 (~) 字符的属性选择器

javascript - 是否可以在没有目标的方法上使用 dojo 方面?

dojo - 向dojo树的存储中添加新项目不会触发更新

javascript - 将包重新映射到 dojo 构建中

javascript - 向 dojo DataGrid 项添加工具提示

javascript - 一个模块 : OPTIMIZER FAILED: InternalError: missing name after . 运算符(operator)的 Dojo 构建失败

javascript - 如何使用 require({缓存 :{ in dojo layers?

dojo build - nls bundle ,除非 bundle 位于 "dojo/dojo"中,否则构建会失败?