Sencha AlternateClassName在编译版本中不起作用

时间:2014-09-08 15:35:38

标签: extjs sencha-cmd sencha-touch-2.3

我正在使用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();
},

现在,如果我尝试该示例,则在加载应用程序后,会成功显示警报消息。

Success

但是在使用sencha cmd编译之后

  

sencha app build production

我收到此错误:

Fail

我知道问题在于备用类名,因为如果我使用全名(而不是替代类名),它仍然适用。但我想使用备用类名,否则没有任何意义。

有关编译版本有什么问题的想法吗?

TIA! 米尔顿

1 个答案:

答案 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