我正在使用Sencha应用程序 我已经创建了几个Utilities类作为单例组件(帮助程序,服务等) 我正在使用alternateClassName为这些类设置一个较短的名称 它运作完美,但在编译生产后停止工作。
我不知道为什么,并需要帮助才能让这个工作!
查看以下示例:
为简单起见,我使用sencha cmd创建了一个演示应用程序。申请是“演示”
整个应用程序是默认的,但我在app中添加了一个util文件夹,只有一个文件Helper.js。这是代码:
Ext.define('Demo.util.Helper', {
singleton: true,
alternateClassName: 'Helper',
test: function () {
alert('It works !');
}
});
然后,我只需要更新app.js以要求这个新文件,并在添加主视图后更新启动函数以调用测试方法。所以这是在app.js中使用的代码:
requires: [
'Ext.MessageBox',
'Demo.util.Helper'
],
启动功能:
launch: function () {
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
Ext.Viewport.add(Ext.create('Demo.view.Main'));
Helper.test();
},
现在,如果我尝试该示例,则在加载应用程序后,会成功显示警报消息。
但是在使用sencha cmd编译之后
sencha app build production
我收到此错误:
我知道问题在于备用类名,因为如果我使用全名(而不是替代类名),它仍然适用。但我想使用备用类名,否则没有任何意义。
有关编译版本有什么问题的想法吗?
TIA! 米尔顿
答案 0 :(得分:0)
过了一段时间,我们意识到Sencha在编译单例类进行生产时也有一个错误(也适用于测试)。
解决方案是删除singleton标志,并在启动方法中为所有单例类创建应用程序变量。
例如:
Demo.Helper = Ext.create('Helper');
希望这有帮助!
<强>更新强>
Sencha Cmd的最新版本充满了怪异的错误! 在修复这些问题后我发现了很多其他问题,最后,我找到了这个链接http://www.sencha.com/forum/showthread.php?288972-MyAppName.app-not-working-on-build-production&p=1064635