Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Разный код для development и production версий приложения (https://javascript.ru/forum/extjs/62622-raznyjj-kod-dlya-development-i-production-versijj-prilozheniya.html)

khusamov 20.04.2016 21:08

Разный код для development и production версий приложения
 
Я на этапе sencha app watch пользуюсь Ext.ux.ajax.SimManager для эмуляции ответов на запросы от прокси хранилищ.

Как мне этот код выделить таким образом, чтобы при сборке приложения командой sencha app build код эмуляции AJAX-ответов был исключен?

khusamov 21.04.2016 18:55

https://www.sencha.com/forum/showthr...10#post1133510

khusamov 22.04.2016 13:57

На данный момент нашел пока директиву компилятора, код которой в продакшн не попадает.

//<debug>
...
//</debug>

nohuhu 22.04.2016 21:07

Мне кажется, проще будет не исключать код из боевой версии, а наоборот - включать дополнительный код в отладочную.

Сделать это можно в app.json:

"development": {
    "js": [{
        path: "app/store/AjaxSimulation.js"
    }]
}


В KitchenSink есть примеры разных директив для отдельных сборок.

kolka 23.04.2016 08:52

Цитата:

Сообщение от nohuhu
В KitchenSink есть примеры разных директив для отдельных сборок.

Можете указать где.. я не нашел.. возможно плохо ищу..

nohuhu 25.04.2016 21:34

В app.json приложения KitchenSink есть вот такие структуры:

...

    /**
     * override objects for setting build environment specific
     * settings.
     */
    "production": {
        "output": {
            "appCache": {
                "enable": false
            }
        },
        "cache": {
            "enable": false
        }
    },

    "testing": {
    },

    "development": {
        "fashion": {
            "inliner": {
                "enable": false
            }
        }
    },

    ...


Насколько я помню из обсуждений этого вопроса с Кевином, объекты production/testing/development могут содержать почти все остальные директивы и таким образом перекрывать нужные настройки для конкретной сборки. Какие именно директивы не входят в список "почти", я не знаю. Проще будет попробовать, с большой долей вероятности всё сработает.

Infarch 26.04.2016 09:45

nohuhu, а нет ли внятной документации по app.json? А то там много всего, но из скудных комментариев сложно понять как все это готовить. Вот например я тут вижу "testing", но что это? Я только с "development" и "production" знаком. Fashion тоже зверюшка интересная...

khusamov 26.04.2016 13:02

Спасибо за ответ!
Буду проверять
"development": {
    "js": [{
        path: "app/store/AjaxSimulation.js"
    }]
}

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

khusamov 26.04.2016 13:47

А почему строка

"path": "${app.dir}/sim/DataSimulation.js"


не сработала?

${app.dir} = пусто!

nohuhu 26.04.2016 21:30

@khusamov,

Трудно сказать, не видя логов. ;)

nohuhu 26.04.2016 21:32

@Infarch,

Командирщики посыпают голову пеплом и признаются, что с документацией трудно. В директории с приложением есть .sencha/app/app.defaults.json, комментарии в этом файле и есть вся документация. :(

P.S. Пардон, не заметил вторую часть вопроса. Сборка testing предназначена для тестирования приложения. В этом режиме весь код JavaScript склеен в один большой файл, но блоки <debug></debug> не вырезаются, и файл не минимизируется, так что отлаживать не так больно, как на боевой сборке.

khusamov 26.04.2016 21:33

А логов нету. Ну по крайней мере в консоли браузера.
Если вы про логи компилятора, то я даже не знаю где они находятся.

nohuhu 26.04.2016 21:35

Логи есть, если запустить sencha -debug app build. Готовьте буфер, Cmd любит потрындеть, когда её просят. ;)

khusamov 10.05.2016 12:29

Вложений: 1
Лог во вложении


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