2014-09-08 2 views
0

Я работаю в приложении Sencha.
Я создал несколько классов Утилиты как компоненты singleton (помощники, службы и т. Д.).
Я использую alternateClassName для более короткого имени для этих классов.
Он отлично работает, но перестает работать после компиляции для производства.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(); 
}, 

Теперь, если я пытаюсь пример, после загрузки приложения, предупреждение тзд показан успешно.

Success

Но после того, как скомпилировать его с помощью Сенча ЦМД

sencha app build production

Я получаю эту ошибку:

Fail

Я знаю, что проблема с именем альтернативного класса, потому что если я используйте полное имя (вместо альтернативного имени класса), оно все равно работает. Но я хочу использовать альтернативное имя класса, иначе это не имеет никакого смысла.

Любая идея о том, что случилось с скомпилированной версией?

TIA! Milton

ответ

0

Через некоторое время мы поняли, что Sencha имеет ошибку при компиляции одноэлементных классов для производства (также работает над тестированием).

Решение заключалось в том, чтобы удалить флаг singleton и создать прикладную переменную для всех одноэлементных классов в методе запуска.

Например:

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

Надеются, что это поможет!

UPDATE

Последняя версия Сенча Cmd полна бесконтрольного ошибок! Я нашел много других проблем после исправления этих, и, наконец, я нашел эту ссылку http://www.sencha.com/forum/showthread.php?288972-MyAppName.app-not-working-on-build-production&p=1064635

Смежные вопросы