Почему EXTJS загружает файлы, связанные с PICKER, если в моем приложении нет ссылки на PICKER?

Я создаю приложение с помощью sencha cmd - «sencha build production», и когда я запускаю свое приложение через Fiddler, я вижу, как оно загружает /ext/classic/classic/src/picker/Date.js и / ext / classic / classic / src / form / field / Date.js, а также в моем файле classic.json, который компилируется, я также вижу ссылки на сборщики.

Я не «требую» эти классы где-либо в моем приложении, поэтому я подумал, что CMD был предназначен только для включения файлов, необходимых для запуска приложения? Я что-то делаю не так или мне нужно специально «исключать» файлы из build.xml, которые я не хочу включать в сборку?


person a344254    schedule 10.03.2018    source источник


Ответы (1)


Да, Sencha Cmd строит дерево компонентов, начиная с приложения и добавляя необходимые компоненты, пока не будут выполнены все требования.

Когда вы запускаете свое приложение через fiddler и видите, что он загружает некомпилированный файл, то на этот файл фактически ссылаются откуда-то, потому что процесс сборки Cmd и некомпилированное приложение на самом деле являются двумя отдельными процессами, которые оба разрешают requires список файлов, которых они касаются, но на самом деле это совершенно разные кодовые базы. Порядок, в котором файлы разрешаются в некомпилированной версии, может сказать вам, откуда на файлы ссылаются.

Насколько мне известно, Sencha Cmd не имеет возможности специально исключать файлы, которые вам не нужны в вашей сборке; и я думаю, ты так что-нибудь сломаешь.

Я просмотрел код и обнаружил, что для следующих файлов требуется Ext.form.field.Date, а затем Ext.picker.Date:

  • 'Ext.form.field.Time'
  • 'Ext.grid.property.Grid'

Поэтому, если в вашем коде есть временное поле или сетка свойств, ExtJS правильно разрешает и загружает эти файлы.

person Alexander    schedule 10.03.2018