在qooxdoo桌面(浏览器环境)加载模块

Loading modules in qooxdoo desktop (browser environment)

我正在努力如何集成客户端模块,例如 - Apollo Client 进入特定于 qooxdoo 的 generate.py 工作流程,以便它们在浏览器中可用。

根据 installation notes:

To use this client in a web browser or mobile app, you'll need a build system capable of loading NPM packages on the client. Some common choices include Browserify, Webpack, and Meteor 1.3. [...]

旁注:我目前使用 Babel 6 以递归方式将我的所有源代码从单独的文件夹 source.es6/ 转译到 "official" source/ 文件夹中,然后由 generate.py。是否可以以某种方式使用它来解决我的问题?

OTOH,我希望至少看到与 Webpack、Browserify 或 SystemJS 的某种集成。

我建议您执行以下操作。首先,从 Apollo Client 及其依赖项创建一个可加载包,例如使用网页包。然后确保在加载 qooxdoo 应用程序之前将这些包加载到您的网页中。然后 Apollo API 可用于您的 qooxdoo 代码。

如果您选择使用 <script> 标签部署 Apollo 包,您可以让 generate.py 使用 add-script 配置键来实现。

我建议您将 Webpack 运行 的输出放在您的 qooxdoo 项目的 resource 路径中,并在您的主 qooxdoo class 中为这些文件添加 @asset 提示。这将确保它们被复制到您的应用程序的 build 版本中,并且您可以使用这些文件的相对 URI,直接在您的 index.html 中或在 add-script 配置设置中。

我认为您使用 Babel6 进行转译对此处没有帮助。 Apollo 代码已经可以使用了,您不想分解它并使其成为您的 qooxdoo (es6) 源代码树的一部分,更不用说它的依赖项了。我宁愿把它当作一个收缩包装的 JS 库,正如我所描述的那样,它像资源一样添加。