0

我正在使用 Sencha 应用程序。
我创建了几个实用程序类作为单例组件(帮助程序、服务等)。
我正在使用alternateClassName 为这些类设置一个较短的名称。
它工作完美,但在编译生产后停止工作。

我不知道为什么,需要帮助才能使其正常工作!

查看以下示例:
为简单起见,我使用 sencha cmd 创建了一个演示应用程序。该应用程序是“演示”。
整个应用程序是默认的,但我在应用程序中添加了一个 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 生产

我收到此错误:

失败

我知道问题出在备用类名上,因为如果我使用全名(而不是备用类名),它无论如何都可以工作。但是我想使用备用类名,否则没有任何意义。

关于编译版本有什么问题的任何想法?

蒂亚!弥尔顿

4

1 回答 1

0

一段时间后,我们意识到 Sencha 在为生产编译单例类时有一个错误(也适用于测试)。

解决方案是删除单例标志,并在启动方法中为所有单例类创建应用程序变量。

例如:

Demo.Helper = Ext.create('Helper');

希望这有帮助!

更新

Sencha Cmd 的最新版本充满了可怕的错误!修复这些问题后我发现了很多其他问题,最后我找到了这个链接http://www.sencha.com/forum/showthread.php?288972-MyAppName.app-not-working-on-build-production&p =1064635

于 2014-09-08T17:28:44.303 回答