Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Добавление ext-all-rtl-debug.js в продакшн (https://javascript.ru/forum/extjs/63566-dobavlenie-ext-all-rtl-debug-js-v-prodakshn.html)

Moloch 15.06.2016 13:13

Добавление ext-all-rtl-debug.js в продакшн
 
Здравствуйте, как сделать так, чтобы в продакшне был файл ext-all-rtl-debug.js?

khusamov 15.06.2016 13:32

В файле app.json в разделе production нужно создать раздел js такого вида:

"js": [
        {
            "path": "${framework.dir}/build/ext-all-rtl-debug.js"
        }
    ]

Moloch 15.06.2016 13:56

добавил, сделал sencha app build, но в директории production соответствующая папка с файлом не появилась

khusamov 15.06.2016 15:21

Почему вы решили что она должна там появится???

Moloch 15.06.2016 15:58

потому что в сгенерированном файле index.html указана строчка

<script type="text/javascript" src="ext/build/ext-all-rtl-debug.js"></script>

Moloch 15.06.2016 16:29

и еще хотел спросить правильно ли я организовал файл app.js?

структура примерно такая:

/*
 * Настройка "среды" приложения,
 * загрузка необходимых модулей/библиотек/файлов
 *
 */

/**
 * Конфигурация лоадера
 *
 */
Ext.Loader.setConfig({
    enabled: true,
    disableCaching: false,
    paths: {
        'og': 'app',
        'theme': 'ext/classic/theme-neptune/overrides/',
    },
});

// ожидание ответа - 30 минут
Ext.Ajax.setTimeout(30*60*1000);


Ext.Loader.loadStyle = function(url) {
    var new_link = document.createElement('link');
    new_link.setAttribute("rel", "stylesheet");
    new_link.setAttribute("type", "text/css");
    new_link.setAttribute("href", url);
    document.getElementsByTagName('head')[0].appendChild(new_link);
};

Ext.Loader.loadStyle('build/development/og/resources/og-all_2.css');
/**
 * Необходимые файлы стилизации для тем
 * (Без них появляются бордеры на всех темах кроме neptune)
 *
 */
Ext.Loader.loadScript({url:'app/widgets/themechanger/panel/Panel.js'});
Ext.Loader.loadScript({url:'app/widgets/themechanger/panel/Table.js'});




/**
 * Загрузка необходимых библиотек
 *
 */
Ext.Loader.loadScript({url: 'resources/lodash.js'});
Ext.Loader.loadScript({url: 'resources/FileSaver.js'});
Ext.Loader.loadScript({url: 'gnt/gnt-all-debug.js'});
Ext.Loader.loadScript({url: 'resources/gntTplPatch.js'});

/**
 * Загрузка глобальных классов Ext
 *
 */
Ext.require([
    // global stuff
    'og.Utilities',
    'og.widgets.themechanger.ThemeChangerController',
    'og.Localizator',
    'og.widgets.themechanger.ThemeChanger',
    'og.widgets.GlyphTool',
    'og.widgets.GlyphToolToggler',
    // plugins
    'og.plugins.ToolbarSeparator',

    // widgets
    'og.widgets.DataSaver',

    // samples
    'og.samples.Combo',
    'og.samples.Table',

    // stores
    'og.store.Templates',
    'og.store.FilterTemplates',
]);

/**
 * Иницализация загруженных классов (если нужна)
 *
 */
Ext.onReady(function() {
    og.Localizator.init()
        .then(function() {
            var c = og.widgets.themechanger.ThemeChangerController;
            c.changeThemeGlobal();
        })
        .then(function() {
            Ext.QuickTips.init();
            Ext.setGlyphFontFamily(Glyphs.DEFAULT_FONT_FAMILY);
        })
        .then(createApp)['catch'](function(err) {
            console.error(err);
            alert('app start has failed');
        });
});


/**
 * Запуск приложения
 *
 */
function createApp() {
    Ext.application({
        name: 'og',
        extend: 'og.Application',

    });
}

khusamov 15.06.2016 18:49

У меня так в этом файле только строки 106-110 )))

1) Стили и скрипты лучше отдать на загрузку через Sencha Cmd.
2) Всякие глобальные загрузки require лучше организовывать на местах, где они их используют.
3) 021-ая строку я разместил бы в init приложения в определении класса приложения.
4) 011 - это наверное единственное что тут оставил

Цитата:

Ext.Loader.loadStyle('build/development/og/resources/og-all_2.css');

Этим точно Sencha Cmd должна заниматься. И вообще, каталог build не для загрузки предназначен. Он временный. Его используют для сборки проекта, а потом содержимое в дистрибутив кладут.

Цитата:

Ext.Loader.loadScript({url: 'resources/lodash.js'});

каталог resources предназначен для ресурсов: картинки, шрифты и т.п. муть. Но никак не для скриптов.

.


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