我的经验发现,Architect 的构建和打包工具创建了大量不必要的文件,远远超出了所需文件。技术细节:Architect 2 - 所有构建,Sencha Touch 2.0-2.2.x 包括其间的所有版本,Sencha Cmd 3.x
在 Architect 中开发的最干净和最精简的构建技术是使用 Sencha Cmd 保存然后启动构建。
sencha app build
这将执行默认的“生产”构建。
在这种情况下,输出的差异从生产文件夹中包含所有资源、库、扩展名等的 32MB 文件转储到总共 0.8MB 的最小所需文件,并且不再需要触摸库,因为只编译了所需的类进入应用程序。
至于手头的错误,这个错误与类命名空间、别名和xtype有关。
(快速感谢http://ruidevnotes.wordpress.com/2013/07/25/sencha-ext-js-4-common-typeerror/,为这 4 件事节省了很多打字时间)。
可能的解决方案:
- 如果类有控制器,请确保控制器的视图配置与类视图的 Ext.define 中指定的命名空间相匹配。示例:(控制器)视图:['namespace.of.my.View']
- 当在其他视图上使用类作为 xtype 时,确保视图的别名是 widget.[customXtype] 所以当将其作为项目添加到其他 vims 时,使用 xtype : [customXtype]
- 确保在 app.js 控制器上添加视图的控制器。
- 当类视图没有控制器并且您想在其他视图上使用它时,请确保在 Ext.require(['class.view.namespace.name']); 上添加该视图的命名空间。并指定 xtype 配置而不是别名。
最重要的是,我记得列表插件的一个问题,我相信它的行为与您遇到的错误相同。预建 - 会工作。发布构建,问题和错误。我能够绕过这个错误的方法是通过这种技术:
requires: [
'Ext.XTemplate',
'Ext.plugin.ListPaging'
],
config: {
..., // other standard configs removed for brevity
plugins: [
{
xclass: 'Ext.plugin.ListPaging',
autoPaging: true,
type: 'listpaging'
}
]
}
需要注意的是夸张的插件声明。如果没有这个全面的声明,ListPaging 插件只会在构建之后造成各种痛苦和混乱。
编辑:拼写。