2016-09-14 5 views
5

Вперед Компиляция (или AoT) - это функция, предоставляемая в Angular2. Но я не мог найти хорошее объяснение на официальном сайте об этом.Что такое AoT (или сборка вовремя времени) в Angular2?

Может ли кто-нибудь дать четкое определение?

+2

Возможные DUP из http://stackoverflow.com/questions/39464319/how-does-angular2-ahead-of-time-aot-compilation-work – yurzui

+0

спасибо за ссылку, я бы уже рассмотрел его, но все еще ищет точное определение –

ответ

6

Шаблон, в котором мы используем синтаксисы углового2, такие как ngFor, или материалы для передачи данных или данных, необходимо скомпилировать в дружественный код vm, который браузер может прочитать.

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

Это аналогично тому, как мы имеем дело с расшифровкой текста в браузере. Поскольку это дорогостоящий процесс, мы, как правило, переписываем типы файлов в автономном режиме в процессе сборки или сборки.

Rendering шаблон форума дает несколько преимуществ, как

  • Меньший размер пучка: 60% от angular2 библиотеки компилятор. Теперь, когда шаблон компилируется раньше времени, нам больше не нужно отправлять компилятор. Это уменьшает размер пакета, к которому приложение необходимо отправить
  • Быстрое время загрузки: Поскольку шаблон уже скомпилирован в дружественный к VM код, браузер не занимает времени при рендеринге шаблона. Результаты в более быстром рендеринге страницы.
+0

AOT - это просто факт преобразования шаблонов html в функции. Итак, ваше приложение должно быть быстрее (нет необходимости собирать теги на лету при загрузке). Поэтому я соглашаюсь на ** Более быстрое время загрузки **. Но для ** Меньшего размера пакета ** это не произойдет из-за AOT. Вам нужно будет использовать что-то вроде rollup, чтобы дерево встряхнуть ваш код (и уменьшить размер пакета). Это ранняя стадия. – Maxime

+0

Помимо дрожания дерева меньший размер связки также возможен с помощью AOT, поскольку угловой компилятор, который является основной частью углового2, не входит в комплект –

+0

«кроме дрожания дерева ... потому что угловой компилятор ... является основной частью углового2 ". Вам нужно **, чтобы запустить сборку AOT, прежде чем вы сможете эффективно встряхивать дерево. – Maxime

1

Angular2 документов: https://angular.io/docs/ts/latest/guide/deployment.html#!#aot

Угловой вперед-оф-Time компилятор предварительно компилирует компоненты приложений и их шаблоны в процессе сборки.

Приложения, скомпилированные с запуском AOT быстрее по нескольким причинам.

Application components execute immediately, without client-side compilation. 
Templates are embedded as code within their components so there is no client-side request for template files. 
You don't download the Angular compiler, which is pretty big on its own. 
The compiler discards unused Angular directives that a tree-shaking tool can then exclude.