Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.05.2015, 04:24
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Duplicate class name 'Ext.ux.AppInspector' specified, must be a non-
Вылезла такая ошибка:

[W] [Ext.define] Duplicate class name 'Ext.ux.AppInspector' specified, must be a non-empty string


Долгие поиски проблемы привели к следующем.

Оказывается, один класс требует загрузку другого класса через requires, тот в свою очередь требует еще какой-то класс и так далее (глубина может быть невообразимоглубокой блин).

В итоге, если какой-то промежуточный класс в этой цепочке случайно по ошибке потребует один из предыдущих классов, то возникнет вышеупомянутая ошибка о дублировании имени класса. В общем проблема в том, что найти ошибку весьма непросто.

Можно ли сенчу заставить выводить нечто более внятное? Например номер строки с первым проблемным requires?
Ответить с цитированием
  #2 (permalink)  
Старый 22.05.2015, 12:27
Профессор
Отправить личное сообщение для novikov Посмотреть профиль Найти все сообщения от novikov
 
Регистрация: 19.11.2012
Сообщений: 178

Это не ошибка, а предупреждение - warning:

if (Manager.classes[className]) {
                        Ext.log.warn("[Ext.define] Duplicate class name '" + className + "' specified, must be a non-empty string");
                    }


Пробовали уже подключить ext-all-debug.js вместо ext-all.js?
Ответить с цитированием
  #3 (permalink)  
Старый 22.05.2015, 15:39
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

У меня постоянно включен именно ext-all-debug.js
С ним очень удобно отлавливать ошибки.
Ответить с цитированием
  #4 (permalink)  
Старый 22.05.2015, 15:41
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Я имел ввиду ошибка в смысле, что это дело валит всю программу. А так да, предупреждение какое-то... Точнее понятно какое, не понятно почему оно прицепляется именно к Ext.ux.AppInspector, будто это не ихний класс.
Ответить с цитированием
  #5 (permalink)  
Старый 22.05.2015, 15:51
Профессор
Отправить личное сообщение для novikov Посмотреть профиль Найти все сообщения от novikov
 
Регистрация: 19.11.2012
Сообщений: 178

Могу предположить, что из-за ux.

Некоторые пишут так:

Ext.Loader.setConfig({
    enabled: true,
    paths: {
        'Ext.ux': '/scripts/ext/ext-4.1.1/ux'
    }
});
Ответить с цитированием
  #6 (permalink)  
Старый 22.05.2015, 21:38
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Сообщение от khusamov
Можно ли сенчу заставить выводить нечто более внятное? Например номер строки с первым проблемным requires?
Вряд ли. Зависимости отслеживаются асинхронно, и к моменту, когда становится понятно, что "Хьюстон, у нас проблема", стек развинтить уже нереально и нужной информации просто нет.

Вообще это как раз одна из причин, почему Sencha Cmd как инструмент имеет место под солнцем: отслеживание зависимостей давно перестало быть тривиальным делом в Ext JS. :(

По поводу круговых зависимостей: круг можно разорвать, используя uses вместо requires. Собственно, только для этого uses и можно использовать, и только когда совсем уж надо.
Ответить с цитированием
  #7 (permalink)  
Старый 23.05.2015, 00:14
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

ну да... я пока этим страшным uses и спасаю дело... но похоже от него тоже надо как-то избавляться...
Ответить с цитированием
  #8 (permalink)  
Старый 23.05.2015, 00:40
Аватар для nohuhu
Профессор
Отправить личное сообщение для nohuhu Посмотреть профиль Найти все сообщения от nohuhu
 
Регистрация: 21.05.2015
Сообщений: 321

Неа, не надо. Оно как раз для таких случаев и предназначено, так что используйте на здоровье.

Другое дело, что я частенько вижу попытки использовать uses вместо requires, типа "так красивее". Вот это делать не надо, я как раз об этом говорил.

Понимайте, зачем инструмент существует, и используйте его по назначению. Не по назначению лучше не использовать, т.к. может привести к зловредным, усатым, и жутко кусачим насекомым, которые фиг ещё поймаешь. JavaScript вообще ужасный язык, энтропию провоцирует на каждом углу, поэтому дисциплина с ним нужна железная. :(
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Присвоить разные class элементу li, какаие есть способы? aleksandr8i Javascript под браузер 11 12.03.2015 23:46
Знаменитая функция Class учавствует в фреймворке ui2/0 __он_самый__ Оффтопик 3 29.12.2014 13:19
Использование классов в JavaScript devote Ваши сайты и скрипты 70 01.02.2013 17:17
Как работает функция Class godofjavascript Оффтопик 58 17.12.2012 09:49
self = this в обертке Class bFree Общие вопросы Javascript 31 17.11.2012 23:51