Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Не работает DI в проде (https://javascript.ru/forum/angular/77625-ne-rabotaet-di-v-prode.html)

kotelok 29.05.2019 13:09

Не работает 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 очень удобны для остального кода, т.к. в них прячутся несущественные для внешнего кода детали реализации и через них же классы группируются в удобные логические блоки.

kotelok 29.05.2019 13:18

В общем, работает только при такой сборке:
Код:

ng build --prod --aot=false --build-optimizer=false
Но нужно собрать со включенным 'aot'.

kotelok 29.05.2019 13:29

Нашёл. Есть зарепорченный баг AOT-компиляции:
https://github.com/angular/angular/issues/15613


Часовой пояс GMT +3, время: 23:21.