Как собрать код Ext JS по пакету классов вместо создания одного файла app.js

Я работаю над проектом Ext.js, который требует от меня создания кода для производственной среды.

Я могу комбинировать и сжимать все файлы js и css в производстве, но некоторые функции реализованы с помощью «Ext.require», что означает, что на самом деле мне не нужно сжимать все файлы js до одного «app.js».

Например, в структуре MVC есть 3 основных файла js:

  1. CoolController.js
  2. CoolModel.js
  3. Cool.js

В «CoolController.js» мне нужен класс «App.ui.Awesome». В этом случае, если я сожму их все; тогда метод require не имеет для меня смысла.

Итак, мой вопрос в том, возможно ли, что я могу написать некоторую конфигурацию пакета, например, Grunt.js, собрать «Крутые классы» в один файл, исключив файлы ext.js и App.ui.Awesome, а затем я мог бы сжать их в как я хочу? Одна функция, реализованная 3 файлами в один выходной файл js?


person Dayo Choul    schedule 15.07.2015    source источник


Ответы (1)


require.js может служить двум целям. Каждый из них можно использовать независимо:

  1. управление зависимостями
  2. загрузчик модулей

При управлении зависимостями requirejs правильно обрабатывает порядок загрузки других скриптов. Однако в неоптимизированном режиме requirejs использует несколько тегов script. Это противоречит оптимизации минимизации файлов. Для большинства производственных целей один файл javascript работает лучше, чем несколько файлов.

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

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

person Chad Killingsworth    schedule 15.07.2015