2017-01-23 77 views
1

在开发过程中,我通过“sencha app watch”运行我的应用程序,并且没有错误。 但是当我通过“sencha应用程序构建测试”构建我的应用程序时,我得到了不同标准组件的错误:对于组合框,hiddenfield,fieldcontainer。我通过将组件类名称添加到“require”部分来解决它。 我的问题:为什么我必须这样做?这个领域有什么问题?因为对于textfield我没有任何错误。 我使用的是ext js 6.2.0。 gpl版本无法识别的类名/别名widget.combobox(hiddenfield,fieldcontainer,...)

回答

1

需求:按给定名称和所有直接依赖加载所有类。

这个错误是非常常见的,它通常发生是因为所需的Ext组件没有被加载,或者它的一个直接依赖没有在使用该组件之前被加载。

  1. 在开发中成立,我们有分机安装在我们的工作空间
    一般使它容易拉所需的依赖关系。

  2. 在生产或测试案例中,无法加载文件或加载其导致此问题的其直接依赖项之一。

  3. 主要是这些依赖关系是动态加载的。

它总是一个最佳实践,确保您使用所需的任何组件。

这意味着任何组件都没有问题,只是因为内部绑定的方式而导致某些负载问题最多。

1

当您使用ExtJS的开发版本,它是基于app-all.js,其中包含大多数,如果不是全部,ExtJS的类,并且具有大小为2 MB精缩(9 MB unminified)。所以一旦这个文件被加载,它们都是完全可用的。

当您编译ExtJS版本时,Sencha Cmd会生成所需类的依赖关系树,以将产生的app.js的大小降至最低(在我的应用程序中,缩小为1.1 MB)。对于这种依赖关系树,它开始在app.js文件,并认为定义在类:

,并在控制器:

其他地方,如:

  • Ext.create()(如果你建立你的组件动态可分散在你的代码)
  • xtype在comp nt树。