Angular 2 rc 6
, typescript 2
, node 4.5.0
, npm 2.15.9
на Windows 7
Я пытаюсь перейти от компиляции Just-in-Time to Ahead-of-Time, и я полагаюсь на эти ресурсы:
- Angular 2 - Вперед, компиляция.
- https://github.com/angular/angular/tree/master/modules/@angular/compiler-cli#angular-template-compiler
Я понимаю, что мне нужно запустить компилятор ngc
для генерации ngfactory.ts
файлов, и что мне нужно изменить main.ts
, чтобы использовать platformBrowser
вместо platformBrowserDynamic
для начальной загрузки. Я ударил блокпост хотя и не знаю, как продолжить.
1. Я подтвердил, что приложение работает без ошибок с использованием компиляции Just-in-Time. Мой main.ts
:
enableProdMode();
platformBrowserDynamic().bootstrapModule(AppModule);
2. Я удаляю все мои файлы приложений из своей производственной папки, но сохраняю сторонние библиотеки (например: Angular 2, Angular 2 Материал)
3. Я запускаю "node_modules/.bin/ngc" -p ./
Это выполняется без вывода на консоль. Я вижу файл .ngfactory.ts
для каждого из моих компонентов и модулей .ts
. Я также вижу файл .css.shim.ts
для каждого из моих .css
, которые содержат стили компонентов. Кроме того, файлы .js
и .js.map
были переписаны и помещены в производственный каталог
4. Если я попытаюсь запустить приложение в этот момент, я вижу ошибки 404 not found
для всех файлов .html
, содержащих шаблоны компонентов
5. Я вручную перемещаю все файлы шаблонов (.html
) в производственный каталог и запускаю приложение. Он работает нормально, но он по-прежнему использует компиляцию Just-in-Time (255 запросов, включая compiler.umd.js
)
6. Я меняю свой main.ts
на:
enableProdMode();
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);
Само по себе это не имеет значения, поскольку новый код не был скомпилирован. Однако я не знаю, что делать дальше.
Должен ли я снова запустить ngc
? Если это так, я получаю много ошибок типа:
Error at C:/path/to/notify.component.ngfactory.ts:113:41: Property 'visible' is private and only accessible within class 'NotifyComponent'
... (many more like that with lots of properties from lots of components)
Compilation failed
Использует ли использование компиляции AoT, что я должен сделать все мои свойства класса общедоступными? Мне не хватает шага?