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? |
Это не ошибка, а предупреждение - 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? |
У меня постоянно включен именно ext-all-debug.js
С ним очень удобно отлавливать ошибки. |
Я имел ввиду ошибка в смысле, что это дело валит всю программу. А так да, предупреждение какое-то... Точнее понятно какое, не понятно почему оно прицепляется именно к Ext.ux.AppInspector, будто это не ихний класс.
|
Могу предположить, что из-за ux.
Некоторые пишут так: Ext.Loader.setConfig({ enabled: true, paths: { 'Ext.ux': '/scripts/ext/ext-4.1.1/ux' } }); |
Цитата:
Вообще это как раз одна из причин, почему Sencha Cmd как инструмент имеет место под солнцем: отслеживание зависимостей давно перестало быть тривиальным делом в Ext JS. :( По поводу круговых зависимостей: круг можно разорвать, используя uses вместо requires. Собственно, только для этого uses и можно использовать, и только когда совсем уж надо. |
ну да... я пока этим страшным uses и спасаю дело... но похоже от него тоже надо как-то избавляться...
|
Неа, не надо. Оно как раз для таких случаев и предназначено, так что используйте на здоровье.
Другое дело, что я частенько вижу попытки использовать uses вместо requires, типа "так красивее". Вот это делать не надо, я как раз об этом говорил. Понимайте, зачем инструмент существует, и используйте его по назначению. Не по назначению лучше не использовать, т.к. может привести к зловредным, усатым, и жутко кусачим насекомым, которые фиг ещё поймаешь. JavaScript вообще ужасный язык, энтропию провоцирует на каждом углу, поэтому дисциплина с ним нужна железная. :( |
Часовой пояс GMT +3, время: 03:39. |