将多个单独的通用应用程序合并到一个主应用程序

Merging multiple separate universal application to one Main App

我们的应用程序应该有一个 主应用程序 并且由多个模块组成,这些模块有自己的 git 存储库。

目标是使用主应用程序并将模块转换为只应在主应用程序中引用或调用的包。就像 C# 中的 DLL 或 Angular.

中的 组件

现在,我查看了 sencha 文档,我所能看到的只是将模块合并为一个 directory/workspace。我们不想那样做,因为模块有自己的仓库,“主应用程序”也有自己的仓库。

请推荐最佳路径。

我想最简单的方法是通过将其添加为 workspace.json:

来定义每个 repo 中的包的工作区
{
  "frameworks": {
    "ext": "ext"
  },
  "build": {
    "dir": "${workspace.dir}/build"
  },
  "packages": {
    "dir": "${workspace.dir}/packages/local,${workspace.dir}/packages",
    "extract": "${workspace.dir}/packages/remote"
  }
}

现在需要link(建议symlink)或者复制/ext

下的框架

假设您有以下结构

/root/workspace.json
/root/ext
/root/packages/local/yourModule

现在你可以去/root/packages/local/yourModule 并致电

sencha package build

这应该会生成包和 js 文件。

您会在

下找到js文件
/root/packages/local/yourModule/build/yourModule.js
/root/packages/local/yourModule/build/yourModule-debug.js

现在可以从您的主应用按需加载这些文件。


根据您的需要,您可以通过添加

来优化构建
skip.sass=1 
skip.examples=1
skip.slice=1
skip.pkg =1

在您的 package.json 中 - 或用于内部的遗留 sencha cmd 包

/root/packages/local/yourModule/.sencha/sencha.cfg 

另一种方法可能是使用其他构建工具。

你需要在里面做:

/root/packages/local/yourModule/src

  • (文件顺序正确)
  • 连接
  • 删除空格 *
  • 丑化 *

star 表示仅与模块(包)的调试版本相关。

这是一个标准的 sencha cmd 包构建所做的事情。

我用grunt试了一下成功了