Основной пакет Angular 4 очень огромен (что такое $ _gendir?)

Я создал веб-приложение с Angular 4. При этом после компиляции размер основного пакета составляет более 700 КБ. В основном пакете есть что-то под названием $_gendir и приложение (видел это в проводнике исходной карты). Может кто-нибудь объяснить об этом?

Примечание. Когда я использую --no-aot, размер основного пакета составляет только 426 КБ.

Используемая команда: ng build --base-href / rise / --aot --prod --build-optimizer --vendor-chunk = true --sourcemaps - named-chunks --output-hashing = false

основной пакет изучен


person Anand Kadhir    schedule 09.10.2018    source источник
comment
Основной пакет, который вы `` исследовали '', находится в каталоге src, я считаю, вам следует поискать в каталоге dist.   -  person Poul Kruijt    schedule 09.10.2018
comment
Я исследовал только из каталога dist, его нет в src   -  person Anand Kadhir    schedule 09.10.2018


Ответы (1)


Изображение, которым вы поделились, показывает, что оно взято из папки src, поэтому я немного запутался. Хотя прошло некоторое время с тех пор, как я проверил проводник исходной карты, и я думаю, что внутренняя часть cli изменилась. Также это> 700 КБ, а не МБ :). Большая разница в 1000 раз.

В любом случае, Ahead of Time - это не инструмент для уменьшения размера пакета. Это что-то, что значительно сокращает время рендеринга приложения и значительно увеличивает общую скорость.

Вообще говоря, сначала ваше приложение будет меньше с AOT, но чем больше будет расти ваше приложение, вы достигнете точки, в которой AOT будет больше, чем JIT. Полагаю, вы дошли до этого!

person Poul Kruijt    schedule 09.10.2018
comment
OMG, извините, я отредактирую, МБ в КБ, пока кто-то не запутался. - person Anand Kadhir; 09.10.2018
comment
Мое приложение могло достичь этой точки, но разве 700 КБ не огромны? Надеюсь, мое приложение не такое уж большое. - person Anand Kadhir; 09.10.2018
comment
@AnandKadhir Как видите, ваш роликовый трейлер занимает большую часть места. Может быть, вы используете там какую-то внешнюю библиотеку? В любом случае, фреймворк angular относительно велик, чем больше вы его используете, тем больше включается в комплект. Также имейте в виду, что вы собираетесь (или, по крайней мере, должны) заархивировать пакет. Если все сделано правильно, это уменьшает размер сети как минимум на 70%. - person Poul Kruijt; 09.10.2018
comment
Спасибо за ваше объяснение. Но дело в том, что в настоящее время мы не можем настроить наш сервер для сжатия пакета. (Кстати, есть ли способ добавить сжатые файлы в весеннюю загрузку?) И у меня есть отдельный фрагмент поставщика, хотя я использую внешние библиотеки, я надеюсь, что он был накоплен в пакете поставщика. - person Anand Kadhir; 09.10.2018
comment
Использование оптимизатора сборки и блока поставщика не рекомендуется. Общие размеры пакетов с оптимизатором сборки будут меньше, если нет отдельного блока поставщика. Для включения gzip в конфигурации весенней загрузки я могу отослать вас к эта ссылка - person Poul Kruijt; 09.10.2018
comment
Спасибо, что поделились ссылкой @PierreDuc. Я надеюсь, что блок Vendor просто разделяет внешнюю библиотеку на комплект поставщика. т.е. он разбивает код библиотеки на отдельный кусок. Таким образом, мы уменьшим размер файла main. Однако, как вы упомянули, я однажды попробовал без блока поставщика, правда, пакета поставщика не было, но размер основного пакета превышал 1,4 МБ. :( Мы не используем встроенный сервер для нашего приложения. Он развернут в WAS. Поэтому нам нужно включить сжатие в WAS, что мы не можем сделать в настоящее время. - person Anand Kadhir; 09.10.2018