Это возможно и все еще можно использовать в производственных сборках.
Вы можете создать целое приложение AOT, а затем динамически загрузить модуль, который использует библиотеку угловых компиляторов.Это сохраняет базу приложения небольшим (вы используете приложение + несколько КБ для обработки динамической загрузки) и загружает компилятор при необходимости, который весит что-то около 300 КБ.
После build --prod
и gzip он уменьшается до менее 80 КБ только для компилятора,Это то, с чем вы можете жить, если вы планируете иметь полностью динамические страницы.
Я не буду писать здесь код, но:
См. «Создание компонентов на лету»
https://blog.angularindepth.com/here-is-what-you-need-to-know-about-dynamic-components-in-angular-ac1e96167f9e
Мини-приложение (требуется уточнение для динамических модулей):
https://stackblitz.com/edit/mlc-app-init-zyns9l
4.hash.js
- это динамически загружаемый чанк с компилятором.
РЕДАКТИРОВАТЬ
Дополнительная очень важная ссылка:
https://github.com/angular/angular-cli/issues/9306#issuecomment-435404174
Угловые уронят ваши декораторы (все с @), когда он компилируется (AOT).Если вы хотите сохранить их для JIT-части вашего приложения, вам нужно реэкспортировать их (всех, кого вы используете).По сути, вы хотите отбросить их везде, где компилируется AOT, но сохранить их в подмодуле (с отложенной загрузкой), сделав реэкспорт, который предотвращает их удаление в angular, а затем упаковать их в компоновку, что приведет к невозможности компиляциискомпилируйте их в формате JIT (поскольку для этого они нужны).