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

时间:2012-06-28 22:02:20

标签: dojo dojox.mobile

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

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

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

以下是我们具体的当前案例:

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

这是构建配置文件:

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" ]
    ]
}

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

所以我猜具体的问题是:

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

1 个答案:

答案 0 :(得分:8)

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

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

这不是 方式,而是从dojo.css(base,reset),dijit.css(base,layouts等),nihilo.css(示例主题)和android开始。 css(示例主题)将奠定良好的基础

  • 如果您想使用主题,请添加“basename”,例如DojoX中/移动/主题/ iphone / iphone.css
  • 例如,如果iphone.css没有“@import”使用异常小部件,请包含小部件本身提供的css(例如,dojox / widget / ColorPicker / ColorPicker。 CSS)。每个小部件的文档_应该不是这个。

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

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

我缺少一个好的,最新的教程吗?

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

确保版本1.6-1.7和seen this

version 1.8

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

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

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