Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Имя файла не соответствует имени класса - итог приложение не запускается, ошибок нет (https://javascript.ru/forum/extjs/55964-imya-fajjla-ne-sootvetstvuet-imeni-klassa-itog-prilozhenie-ne-zapuskaetsya-oshibok-net.html)

khusamov 23.05.2015 03:35

Имя файла не соответствует имени класса - итог приложение не запускается, ошибок нет
 
Если вдруг встретился в extend или в requires класс, в файле которого, в define имя класса другое (с банальной ошибкой какой-нибудь, например букву пропустили), то приложение вообще не запускается и никаких ошибок не генерируется.

Например загружаю

require("Zevs.controller.command.InsertCommand")


а в файле

define("Zevs.controller.command.Insert", ...


Проблема в том, что если изначально не знаешь где ошибка, то приходится: а) вспоминать, что это скорее всего именно этот случай (не знаю как другие, а я что-то долго это вспоминаю), б) когда вспомнил - приходится долго искать в файлах, где же несоответствие имени файла и имени класса в файле.

Как сделать, чтобы выскакивало хоть какое-то сообщение об ошибке?

nohuhu 23.05.2015 03:47

Использовать Sencha Cmd, оно взорвётся на этапе построения дерева зависимостей. ;)

siber-biber 23.05.2015 07:08

В консоль браузера смотрите. Там пишутся ошибки. Ну и на закладке "сеть" можно банально 404 увидеть..

khusamov 23.05.2015 19:17

Цитата:

Сообщение от siber-biber (Сообщение 372026)
В консоль браузера смотрите. Там пишутся ошибки. Ну и на закладке "сеть" можно банально 404 увидеть..

Ошибок нет.

404 не появляется по причине, что файл-то найден! А вот класса в нем (ну искомого конечно) нету.

Так что увы, похоже нужен Cmd.

siber-biber 24.05.2015 06:47

В принципе я никогда не испытывал такой потребности.. но такую проверку можно самостоятельно прикрутить к редактору в котором вы работаете, либо добавить в другой этап воркфлоу вашей разработки.
Вещь то элементарная пройти по файлам и проверить чтоб имена совпадали с Ext.define('...', ...

У нас например практикуются хуки перед коммитом в которых мы гоняем лёгкие санити тесты. Вот я бы туда такое и вписал наверно..

khusamov 24.05.2015 17:15

Цитата:

самостоятельно прикрутить к редактору
Хмм... я об этом вообще не подумал. Надо глянуть Cloud9 поддерживает подобные фичи или нет. Спасибо за подсказку.

nohuhu 26.05.2015 19:54

Цитата:

Сообщение от khusamov (Сообщение 372132)
Хмм... я об этом вообще не подумал. Надо глянуть Cloud9 поддерживает подобные фичи или нет. Спасибо за подсказку.

Если будете пытаться что-то такое делать, то настраивайте фичу сразу, чтобы поиск шёл только по коду вашего приложения. С основным фреймворком и user extensions проверка "имя файла === имя класса в Ext.define" сломается много где.

khusamov 26.05.2015 21:25

ну да... туда лучше не лезть...

посмотрел, в Cloud9 есть такая возможноссть - называется плагины и бандлы. Но там все по взрослому сделано. СДК есть даже. В общем придется это отложить, потом вернусь и освою построение плагинов. Думаю что не только этот плагин понадобиться. Спасибо за наводку - знаю где можно подобные проблемы решать))))

nohuhu 27.05.2015 01:54

Я уже говорил: для решения подобных проблем есть специальный инструмент, Sencha Cmd. Вам принципиально велосипед изобретать?

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

Поэтому рекомендую поискать временные пути обхода проблемы.

khusamov 27.05.2015 14:42

Цитата:

Вам принципиально велосипед изобретать?
Нет. Но у меня есть еще задачи другие, которые легко решаются плагинами для Cloud9, например деплой.


Часовой пояс GMT +3, время: 20:34.