如何设置包含多个应用程序的 Dojo 构建流程?

Posted

技术标签:

【中文标题】如何设置包含多个应用程序的 Dojo 构建流程?【英文标题】:How do I set up a Dojo build process with multiple applications? 【发布时间】:2015-05-05 18:07:07 【问题描述】:

我有一个基于Colin Snover's Dojo Boilerplate 的单页Dojo (1.8) 应用程序,它可以很好地构建和运行。现在我已将网站扩展为多个页面,其中一些具有其他 Dojo 应用程序。它在源目录中运行良好,但构建过程不会获取其他文件,因此安装的网站会损坏。

我需要更新构建过程,以便优化和复制所有文件,但我不知道应该在哪里添加额外的引用。

(我浏览了很多 Dojo 文档,但它倾向于关注树木的细节,甚至是树枝,而不是只说森林的样子。)

原始样板文件树如下:

/build.sh:基于 bash 的构建脚本,其核心是在 node.js 下运行构建工具 /profiles/app.profile.js:“应用程序构建配置文件”,使用--profile 选项传递给构建脚本 /webroot/:网络服务器根目录,包含: /dijit/、/dojo/、/dojox/、/util/:标准 Dojo 源目录 /app/:应用程序目录,包含 main.js:应用程序的主要入口点,它需要所有内容,然后解析 DOM 以实例化各种应用程序对象 run.js:一些基本的 require()ments,通过 --require 选项传递给构建工具 (应用程序代码的其余部分)

从 /webroot/util/buildscripts/ 调用构建工具,如下所示:

node ../../dojo/dojo.js load=build --require ../../app/run.js --profile ../../../profiles/app

我现在添加了两个新应用程序:一个托管在 /webroot/info.html 中,源在 /webroot/info/,另一个在 /webroot/licenses.html 中,源在 /webroot/licenses /(两个应用程序都有基于初始样板文件的 run.js 和 main.js)。新应用程序使用各种 Dojo 工具,以及 /webroot/app/* 中的一些类。

但是,我应该在哪里添加对这些新应用程序的引用,以便构建过程做正确的事?以下是我提出的一些可能性:

向构建工具添加新的--require newApp/run.js 选项 添加新配置文件,包含在构建工具的附加 --profile newApp.profile.js 选项中 将新的“层”添加到现有的 app.profile.js 文件中 多次运行构建工具,每次都为其中一个应用程序配置,相信它会正确地将文件合并到目标目录中(我怀疑这会起作用,但我已经考虑过了......)

那么,我从这里去哪里?

【问题讨论】:

【参考方案1】:

最简单的方法是为每个应用程序创建一个 bash 文件,您仍然可以通过从命令行传递 bash 变量($1 $2,...)将其优化为一个。

所以基本上,您将 build.sh 复制到每个应用程序目录中,调整路径,然后创建一个主 shell 脚本,调用每个应用程序的 build.sh

【讨论】:

那么,您单独构建应用程序,然后合并文件树?我很确定有些文件会出现在多个应用程序中,但内容不同,所以我认为这行不通。

以上是关于如何设置包含多个应用程序的 Dojo 构建流程?的主要内容,如果未能解决你的问题,请参考以下文章

Dojo 1.8 构建系统 - 如何设置前缀/路径?

如何使用 dojo 和 struts2 在对话框中显示异步获取的信息?

有没有办法构建一个包含来自包位置的单个文件的 Dojo 模块?

如何使用简单的 Dojo 1.8 构建?

如何从AMD dojo创建构建

您可以同时使用 Dojo.Build 和 CDN 吗?