2015-04-02 2 views
0

В ExtJs 4.2, я всегда использовал ext-debug.js в среде разработки. Преимущество над ext-all-debug.js состоит в том, что каждый класс загружается как отдельный файл, и, как следствие, обратная трассировка в инструменте разработчика намного яснее.Как использовать ext-debug.js с ExtJs 5.0?

Я сделал обновление от ExtJS 4.2 до 5.1, и мой app.json выглядит следующим образом:

/** 
* Comma-separated string with the paths of directories or files to search. Any classes 
* declared in these locations will be available in your class "requires" or in calls 
* to "Ext.require". The "app.dir" variable below is expanded to the path where the 
* application resides (the same folder in which this file is located). 
*/ 
"classpath": "${app.dir}/app", 
/** 
* The Sencha Framework for this application: "ext" or "touch". 
*/ 
"framework": "ext", 
"js": [ 
    { 
     "path": "${framework.dir}/build/ext-all-rtl-debug.js" 
    }, 
    { 
     "path": "app.js", 
     "bundle": true 
    } 
], 

Когда я изменить линию

"path": "${framework.dir}/build/ext-debug.js" 
  • Сенча построить failes с этим погрешность

    [INF] Capturing theme image 
    [ERR] loading page W%3A/mbgest25dev/sass/example/theme.html 
    registering ready listener... 
    [E] [Ext.Loader] Some requested files failed to load. 
    ... dozens of times the same error 
    
  • ext-debug.js загружается, но все классы загружаются с неправильной URL (и получить 404 ошибки) GET http://example.com/packages/sencha-core/src/class/Mixin.js?_dc=1427986581354 вместо GET http://example.com/app-directory/ext/packages/sencha-core/src/class/Mixin.js?_dc=1427986581354

Конечно, ошибки в sencha app build одинаковы, чем в браузере.

Должна отсутствовать конфигурация, которая сообщает ext-debug.js, где искать фреймворк, в то время как ext-all-rtl-debug.js не нужно знать.

Как настроить ExtJs 5.0 для работы с ext-debug.js, чтобы извлечь выгоду из более четкой и более уместной трассировки стека?

Edit:

Добавление пути к каркасным доб классов к classpath как "classpath": "${app.dir}/app,${app.dir}/ext", не помогает. sencha cmd дает некоторые предупреждения и, наконец, не может создать приложение.

ответ

0

Эта конфигурация может быть обработана в трех местах, как правило, в следующем порядке:

  • .sencha/sencha.cfg
  • app.json
  • app.js (или application.js)

Если вы обновляете версию Ext JS 4, есть хороший шанс, что она находится в sencha.cfg. Ищите app.framework и app.classpath.

Далее проверьте app.json и найдите те же настройки, которые могут быть переопределены. Если все остальное не удается, попробуйте указать путь к ним, установив их в Ext.application в app.js, используя paths свойство (пространство имен объектов для структуры каталогов).

+1

Документация, прилагаемая к приложению.json говорит, что ** framework ** должен быть либо 'ext', либо' sencha'. ** classpath **, с другой стороны, указывает, где загрузчик должен искать классы приложения. Это «classpath»: «$ {app.dir}/app» в моем случае. Мне не было бы смысла добавлять '$ {framework.dir}' или '$ {app.dir}/ext', не так ли? Я попробую, но я настроен скептически. –

+0

Я пробовал то, что вы рекомендовали, но я не смог заставить его работать. См. Править. Может быть, вы можете дать более конкретный совет? –

+0

Можете ли вы показать нам результат загрузки bootstrap.json после обновления или скомплектования приложения? Где-то ваш базовый каталог пакетов не устанавливается должным образом, его трудно сказать, не видя некоторых ваших файлов конфигурации. – OhmzTech

2

Если вы удалите эти строки

{ 
     "path": "${framework.dir}/build/ext-all-rtl-debug.js" 
} 

в app.json вы добиться того, что вы хотите (Ext загрузит необходимые классы, что написано в файле bootstrap.json).

+0

спасибо. Это блокировало меня для обновления моего приложения до ExtJs 5. Между тем ExtJs6.0 вышел. Я не могу проверить, правильный ли ваш ответ на данный момент, но, конечно, это позволяет мне попробовать обновление до версии 6.0. –

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