Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Sencha Cmd - Общие вопросы (https://javascript.ru/forum/extjs/57598-sencha-cmd-obshhie-voprosy.html)

khusamov 11.08.2015 13:19

Sencha Cmd - Общие вопросы
 
1) Какие-то проблемы со скачиванием:

[ERR] Error downloading http://cdn.sencha.com/cmd/6.0.0.202/...indows.exe.zip
Отдельно установить установил, но не запускается. Почему-то 5-ая версия доступна...
Придется все сносить похоже...
И не ясно как скачать 64бит без JRE...

2) А как настроить форматирование кода?
Например, он может генерировать приложение, то есть код, но он отформатирован не так как мне хотелось бы...

3) Не ясно как сгенерировать не приложение, а библиотеку...
Эта возможность вообще имеется или только приложения можно делать?

kolka 11.08.2015 15:09

  1. Никогда вообще с этим не было проблем
  2. По Sencha CMD я тут все учил. Очень много настроек можно править в app.json.. по этому файлу настроек вообще отдельный мануал у них.
  3. sencha generate [app|controller|form(Sencha Touch Specific)|model |package|profile(Sencha Touch Specific)|theme|view|workspace]

khusamov 11.08.2015 17:38

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

http://docs.sencha.com/cmd/5.x/cmd_p..._packages.html

kolka 11.08.2015 18:01

Да, верно.
Но как я вижу все сводиться к соблюдению четкой структуры пакета и следованию их рекомендациям в этом талмуте.

siber-biber 12.08.2015 14:06

Если победите форматирование кода отпишите здесь ..мне тоже не нравится что бандл итоговый переформатируется.

Есть опция у concatenate включающая beatifier кода -b, но она включает украшательство по прошитым в sencha cmd стандартам. Тогда малость получше выглядит ..но один фиг хочется вообще к чертям всё это отключить так как код уже отформатирован по другим корпоративным стандартам.

Еще не нравится что в код добавляются лишние semicolons в конструкции switch (...) {...} ..пришлось jshint-у сказать чтоб на такое не ругался.
Как побороть всё это я не нашел.

khusamov 12.08.2015 16:00

вот уж не знал что он кроме своего кода еще и мой код будет форматировать по своему(((

siber-biber 12.08.2015 17:58

Да эта штука не церемонится при компиляции.

nohuhu 12.08.2015 21:39

Цитата:

Сообщение от siber-biber (Сообщение 383862)
Если победите форматирование кода отпишите здесь ..мне тоже не нравится что бандл итоговый переформатируется.

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

Цитата:

Еще не нравится что в код добавляются лишние semicolons в конструкции switch (...) {...} ..пришлось jshint-у сказать чтоб на такое не ругался.
Как побороть всё это я не нашел.
А и не найдёте. Есть несколько таких мест, в которых наш компилятор вставляет "лишние" точки с запятой. Причина проста, хотя и не очевидна: в JavaScript есть одна говнофича под названием Automatic Semicolon Injection. Это когда вы можете забыть точку с запятой в конце строки, а код вроде работает и всё какбэ хорошо.

Так вот, мне один раз пришлось потратить полдня на отлавливание очень мерзкого усатого друга, который был призван в наш мир именно через дырку в ASI на транслированном коде. В одном или двух кусках кода цикл for() был использован как инкрементальный оператор, без блока {}. Примерно вот так:

// Я не помню, что конкретно этот код делал
for (i = 0; i < 10; i++)

// Тут был комментарий
foo = bar; // пошли дальше по коду


Это каким-то образом пролетало через парсеры JavaScript в браузерах, и ошибки не вызывало. Видимо, в конце строки с for() автоматически подставлялась точка с запятой. Когда же код был транслирован, он выглядел уже по-другому:

for (i = 0; i < 10; i++) foo = bar;


Видите проблему, да? Чёртов JavaScript. Вот чтобы от таких косяков перестраховаться, принтер кода и втыкает "лишние" точки с запятой.

А вообще до меня только что дошло - зачем вы вообще гоняете JSHint на сборке? Это боевой код, как правило минимизированный. Какая разница, как он выглядит?

khusamov 13.08.2015 00:29

фу блин, я думал что исходный код будет тоже отформатирован... Выходной код и должен быть переделан, это очевидно.

Я про другое спрашивал - как повлиять на генерируемый код. Например при создании пустого проекта, там появляется код, который не так как хотелось бы отформатирован.

nohuhu 13.08.2015 00:44

Насколько я знаю, исходный код не форматируется. Зачем это делать?

Что касается создания пустого проекта, то генерируемый код не подстраивается. Авторитативный ответ от командирщиков. :) Форматируйте уже сгенерированную болванку.


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