Dojo自定义构建:要部署的文件

dbr*_*aux 3 dojo dojox.mobile

首先,我们是Dojo的新手并且是以"新"的方式自由地做事,所以我大多忽略了文档的前1.7部分.不过,在比较各种文章,文档和示例脚本时,我会感到困惑.

最重要的是,我找不到关于如何为Dojo 创建和部署自定义构建的直截了当的说明.更具体地说,我们需要部署哪些.js和.css文件.有很多关于创建构建文档,但是我在部署时没有找到.

我最终收集了将所有内容构建到单个dojo.js是一个合理的移动实践,我只需要从构建目录中提取一个文件并将其部署到我的服务器,但后来我得到了缺少的CSS引用,看起来好像试错法是解决这些问题的正确方法.

这是我们具体的当前案例:

<script type="text/javascript">
        require(
                // deviceTheme to auto-detect device styles
                [   
                    "dojox/mobile",
                    "dojox/mobile/parser",
                    "dojox/mobile/deviceTheme"
                ]);
</script>
Run Code Online (Sandbox Code Playgroud)

这是构建配置文件:

dependencies = {
    stripConsole: "normal",

    layers: [
        {
            name: "dojo.js",
            customBase: true,    // prevent automatic inclusion of dojo/main
            dependencies: [
                "dojox.mobile.parser",
                "dojox.mobile",
                "dojox.mobile.deviceTheme"
            ]
        }
    ],

    prefixes: [
        [ "dijit", "../dijit" ],    // example included; not clear why
        [ "dojox", "../dojox" ]
    ]
}
Run Code Online (Sandbox Code Playgroud)

(由dojo-release-1.7.2-src\dojox\mobile\build\build.bat脚本执行.)

所以我想具体的问题是:

  1. 我为此案例部署了哪些CSS文件?
  2. 我如何知道哪些文件(包括CSS文件)要部署?
  3. 我缺少一个好的,当前的教程吗?
  4. 现有脚本是最新的吗?例如,为什么不mobile-all.profile.js使用dependencies=,而不是profile=1.7构建教程介绍?

msc*_*chr 8

我为此案例部署了哪些CSS文件?

这是有条件的,如果页面使用特定模块并且它有自己的css规则,则包含它们.

这不是方式,而是用dojo.css(基地,复位),dijit.css(基地,布局等等),nihilo.css(例如主题)和android.css(例如主题)起步,将使一个良好的基础

  • 如果你想使用主题,请包含'basename',例如dojox/mobile/themes/iphone/iphone.css
  • 例如,如果iphone.css没有'@import' 你使用的一些异国情调的小部件,请包含小部件本身提供的css(例如,dojox/widget/ColorPicker/ColorPicker.css).每个小部件的文档_应该不是这个.

我如何知道哪些文件(包括CSS文件)要部署?

  • 上传所有文件没有任何害处,加载器将决定从缓存构建中获取哪些文件,哪些文件单独保留以及在运行时下载什么内容.
  • 部署所有内容..当你构建'action = release'时,所有文件都在前缀定义的dojo(默认值,allways),dijit,dojox和你添加的任何包中缩小.
  • 构建结果是优化的工具包树,部署全部或者您可能面临条件包含(例如Toggler.js或acme.js选择器包含等)缺失的情况.

我缺少一个好的,当前的教程吗?

通过'thumbrule',任何1.6+文档都是稳定的,但它们大多数都是相同的.当你启动一个配置文件时,它可能会有一些试验和错误(脚本文件的内联html包含的顺序是最重要的).你发布的内容看起来不错,但考虑一下customBase:true是否是必要的.

确保您已在版本1.6-1.7和版本1.8中看到此内容

现有脚本是最新的吗?例如,为什么mobile-all.profile.js使用依赖项=而不是1.7版本教程描述的profile =?

您可以使用现有的盒子.然而,建设者正在发生变化,与备受争议的2.0版本相抗衡.目前,新计划以及常规计划都是允许的.但实际上变量名称可以是foo或bar,只有变量的值可以使用.该文件必须"返回"单个对象.

据我所知,原因是CommonJS Packages/1.0是AMD和Builder 1.7+的新圣经.不过,它始终是包装层次所遵循的"拇指"方案 - 但是随着我们越接近2.0,语法很可能变得越来越严格.(看看你是否可以在#dojo @ irc.freenode.org上与snover联系)