Настройка путей для SenchaCMD
Здравствуйте.
У меня есть воркспейс, в нем несколько приложений. Когда одно из приложений билдается, оно оказывается по следующему пути: "${workspace.build.dir}/${build.environment}/${app.name}". Как можно настроить один из проектов для билда в другую папку? Например, чтобы файлы оказались в "с:/htdocs/${app.name}"? Я пробовал менять app.json: "output": { "base": "с:/htdocs/${app.name}" }, Это не помогло. Что еще можно попробовать? |
Здравствуйте тоже.
Спросил у командирщиков, советуют попробовать "c:\\htdocs\\${app.name}". Для вящей пользы можно ещё запускать с флагом -debug: sencha -debug app build Потом можно будет заслать лог разработчикам, чтобы они посмотрели. |
nohuhu, спасибо за ответ!
Я уже добился чего хотел несколько иным способом, но получил очередную проблему которую непонятно как решить. Но давайте обо всем по порядку. Для начала, в sencha.cfg я создал константу которая указывает на мой веб сервер: docia.htdocs.dir = c:/bb_projekt/docia/webserver/htdocs Далее, в app.json моего приложения добавил вот такое: "production": { "output": { "base": "${docia.htdocs.dir}/${app.name}" } } Теперь билд идет туда куда я хочу, но вот не обошлось без ложки дегтя. Когда я тестирую приложение, я запускаю его прямо из воркспейса, ну не хочется мне постоянно запускать билд на каждое изменение! И вот там теперь не находится css файл. Мое приложение называется Toster, и оно пытается подгрузить Toster-all.css с адреса http://executor.interlogic.com.ua/do...Toster-all.css. Если уж лезть в билды то адрес должен быть таким: http://executor.interlogic.com.ua/Toster/Toster-all.css. Как и где можно это починить? |
Честно говоря, не совсем понимаю, что вы хотите получить в итоге. Вы меняете пути в production build, файлы попадают куда нужно. Отладку на production вести не нужно, для этого есть development build. Настройки для него меняются отдельно.
Также не совсем понятно, как вы запускаете приложение прямо из workspace. Просто открываете файл index.html в браузере через file:// схему? Я бы не рекомендовал так делать, будут проблемы с отладкой Ajax запросов и некоторых других вещей из-за браузерной защиты. Лучше используйте sencha app watch и встроенный сервер Cmd. |
Да, файлы попадают куда нужно, так что к продакшен билду нареканий нет. Но вот в остальном я несколько запутался. Девелопмент билд это что? Вы извините, может я не внимательно читал мануалы, можете линкануть нужный ресурс?
Теперь о том, как я запускаю индекс приложения в воркспейсе. Конечно же, не через file://. Я создал алиас для воркспейса в локальном Апаче, и у меня получилось так: http://executor.interlogic.com.ua/sw/Toster/index.html. Так что весь аджакс работает корректно. Но вот тут возникает проблема о которой я писал выше. Как только я выполнил sencha app build, приложение (то что в воркспейсе) начало искать свой css по неправильному пути. Насколько я понимаю, билд меняет бутстрап приложения в воркспейсе. Я попробовал запустить watch как вы и советовали. Он мне поднял локальный сервер, опять таки изменил бутстрап (судя по логам) и теперь css тянется из продакшен билда по правильному пути. А вот отлаживать приложение под ватчем я не могу! Дело в том что сенчевское приложение у меня, это часть большего сайта, который работает под локальным Апачем. И приложение постоянно к нему обращается за данными, используя относительные ссылки. Watch стартует свой сервер на порте отличном от 80, так что основной сайт становится недоступен из приложения. Однако я тут нашел некий workaround для решения проблем. У меня работает watch и правит бутстрап. А тестирую я приложение, заходя на него через мой апач, а не через watch сервер. Не скажу что все это красиво, но жить можно. Тем не менее, я бы с удовольствием почитал о рецептах кошерной разработки и деплоя. |
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Воспользовавшись ссылкой номер два от kolka (спасибо!), я написал пост-билд обработчик который копирует файлы туда, куда мне надо. Проблема как бы решена наименьшей кровью, но все равно терзает вопрос: а почему билд делал мне кривую ссылку на css? В том же треде форума представитель Сенчи (mitchellsimoens, между прочим целый Sencha - Sr Software Engineer) советует тот же метод, на котором я споткнулся. Не все так гладко в королевстве Сенчи видимо...
|
Цитата:
Цитата:
|
Решаю аналогичный вопрос.
Спасибо этой теме, продакшен компилится куда нужно. Но вопрос по ресурсам. Они копируются тудаже куда билдится index.html А мне бы их в другую папку запихнуть. Пока не нашел как это делать. может сталкивался кто? |
Пока решил вопрос следующим образом - прописал путь к index.html в нужную для ресурсов директорию. А потом index.html копирую куда нужно.
|
Можно сконфигурировать app.json:
"output": { "base": "${ext.dir}/build/examples/kitchensink", "page": "index.html", "manifest": "${build.id}.json", "js": "${build.id}/app.js", "resources": { "path": "./${build.id}/resources", "images": "./${build.id}/resources/images", "shared": "./resources", "toolkit": "${toolkit.name}/resources", "base": "." }, "deltas": { "enable": false }, "appCache": { "enable": false } }, Это кусок из app.json, взятого из примера KitchenSink. Там много чего ещё есть интересного. :) |
Попробовал.
Это ресурсы толкитов. А вот папка ресурсов которая в корне лежит всегда копируется тудаже куда и index.html |
Папка ресурсов, которая в корне - это уникальные ресурсы вашего приложения? Если не трудно, покажите структуру директорий в приложении, .sencha/app/sencha.cfg и app.json. Многие настройки в sencha.cfg и app.json дублируются, может где-то что-то не так пошло.
|
Да уникальные ресурсы приложения.
Я для опытов взял admin dashboard. Там в корне папка resources. Пока писал ответ слово "уникальные" натолкнуло на мысль что такого рода ресурсы всегда должны быть в корне приложения? иначе с путями могут возникнуть непонятки. Так? |
Под уникальными ресурсами я имел в виду ресурсы, которые относятся только к данному приложению. Помимо этого могут быть еще ресурсы в toolkit, в пакетах и т.д. Насколько я помню обсуждение этого вопроса с командирщиками, одной из задач Cmd является агрегирование всех ресурсов, относящихся к приложению, в одну директорию. Это необходимо делать, т.к. собранное приложение должно быть самодостаточно и готово к простому копированию на сервер.
Если мы говорим о примере admin-dashboard, то в его app.json есть секция output, которая регулирует финальное местоположение разных артефактов сборки, в т.ч. ресурсов. Над секцией output есть довольно подробный комментарий, дающий примеры настроек для разных типов артефактов. А вот откуда берутся "исходные" ресурсы? Для этого в том же app.json есть секция resources, которая и задаёт пути к директориям с ресурсами. Попробуйте поэкспериментировать с настройками, чтобы получить нужный вариант. |
Часовой пояс GMT +3, время: 11:43. |