如何配置 qooxdoo 生成器以包含动态引用的 class?

How configure the qooxdoo generator to include a dynamically referenced class?

首先,一些上下文:我从其他语言(例如 Lisp 和 ClojureScript)驱动 qooxdoo,并且我动态生成代码以引用各个 classes。

这通常会失败,因为 qooxdoo 生成器会查看静态源以查看要包含哪些 classes。

过去,我只是将 classes 的明确提及写入 Application.js。这很好用,但最近我开始理解 config.json 语法并认为采用不那么笨拙的方法会很好。

我设法将这样的代码添加到 "source-build" 作业中,然后该构建工作正常:

"include" : ["qx.ui.mobile.page.Manager"]

但我在一个应用程序中使用了很多 classes,因此将其添加到每个作业中很容易出错,而且仍然很难看。

我尝试将 "include" 添加到其他作业扩展的 "mobile-common" 作业中,但令我惊讶的是它不起作用。嗯.. 工作 "extend" 逻辑中可能存在错误吗?

我可以将 "include" : ["qx.ui.mobile.*"] 添加到所有作业中,但这仍然是丑陋和过度的(而且我仍然需要引入多个其他 classes在每项工作中)。

回顾这一切,如果作业"extends"机制成功获取"include"选项似乎没有问题。我只是 运行 带有详细选项 -v 的生成器并且可以确认如果我将 "include" 添加到 mobile-common 页面管理器 class 不包括在内,但如果我这样做的话在具体工作上。

我是不是漏掉了什么?

肯尼,

你用的"mobile-common"这个作业说的很对,居然不起作用,真是奇怪。由于我不知道你的确切 config.json 文件,我只能在这里提供一些猜测:

  • 移动骨架提供的默认 "mobile-common" 作业已经包含一个 "include" 键。你没有在工作中添加第二个吗?!
  • 您是直接使用手机 config.json,还是您创建了另一个配置文件并包含了包含默认 "mobile-common" 的配置文件?如果您使用作业跟踪(即在一个配置文件中定义 "mobile-common",但也在第一个包含的另一个配置文件中定义),这将影响生成的作业定义的内容(可能以意想不到的方式)。
  • 默认的 "mobile-common" 作业(无论出于何种原因)在 include 键前面有一个 =,以防止被覆盖。您可能想删除它,看看会发生什么。
  • 如果全部失败,您仍然可以创建自己的包含器作业(如 "my-includes"),向其添加一个 "include" 键,然后将此作业添加到 "extend" 列表中相关的 source* 和 build* 作业。确保将其添加到 before mobile-common 条目。这样你至少可以在一个地方维护你的附加包含模式。