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,

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


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