Не работает DI в проде
Есть класс внутри NS:
export namespace CatalogApi { @Injectable() export class CatalogService { constructor(private httpClient: HttpClient) { Запуск через 'ng serve', всё ок. Делаю сборку через 'ng build' (пробовал собирать с ключами '--prod' и '--aot'). Заливаю на сервер. Захожу на страницу, где используется указанный выше класс и в его конструкторе получаю 'httpClient' равным 'undefined'. При этом тот же 'httpClient' нормально инжектится в другие конструкторы. А если реализовать этот класс вне NS, то работает при любых типах сборки/публикации. Все зависимости обновил/пофиксил. Изначально Angular-7, обновление до Angular-8 не помогает. Как это можно вылечить? P.S.: NS очень удобны для остального кода, т.к. в них прячутся несущественные для внешнего кода детали реализации и через них же классы группируются в удобные логические блоки. |
В общем, работает только при такой сборке:
Код:
ng build --prod --aot=false --build-optimizer=false |
Нашёл. Есть зарепорченный баг AOT-компиляции:
https://github.com/angular/angular/issues/15613 |
Часовой пояс GMT +3, время: 14:47. |