Последний день я чесал затылок по этому поводу. Я использую пакет Ngx-Toastr в своем приложении angular. Ниже приведены пункты, которые, как мне кажется, помогут вам разобраться в проблеме.
На сервере разработки (ng serve) я не получал никаких ошибок, не было проблемы с Nullinjector, затем я делаю производственную сборку, используя следующую команду (ng build). До этого момента все работает нормально. Теперь мне нужно оптимизировать размер пакета, поэтому я запустил это (ng build --prod). Сборка прошла успешно, ошибок нет. Теперь пора выполнить код (для этого я использую сервер Node). Здесь проблема начинается -
Сначала он просит
'NullInjectorError: Нет провайдера для ToastrService'
который поступает из самого пакета Ngx-Toastr, и это имеет смысл, поэтому я добавляю эту службу в модули приложений, а также в другие модули с отложенной загрузкой в массиве поставщиков. Итак, после этого ошибка исчезла. Но следующее, о чем я хочу поговорить -
- Затем он запрашивает "NullInjectorError: No provider for Overlay!" Итак, я решил, что из пакета должна быть эта услуга, которую нужно добавить в массив поставщиков. Поэтому я попытался импортировать его из самого пакета и добавить в массив поставщиков, как показано ниже:
import {Overlay} из 'ngx-toastr / overlay / overlay' ;;
при этом возникла ошибка ниже
Модуль не найден: ошибка: не удается разрешить ngx-toastr / overlay / overlay
- Затем я попытался найти эту проблему и нашел несколько решений stackoverflow, которые предлагают добавить следующую строку:
импортировать {OverlayModule} из '@ angular / cdk / overlay';
Я добавил этот модуль в массив импорта каждого модуля. Ничего не изменилось.
Теперь я понятия не имею, что импортировать и куда импортировать. И я также не уверен, правильно я иду или нет, и с чего мне начать изучать это. Я также сомневаюсь, что эта ошибка исходит из того пакета или чего-то еще !! причина Он должен работать без неявного импорта этих сервисов.
Я запускаю следующую команду, чтобы получить сообщение об ошибке перед производственной сборкой:
ng serve --prod --optimization = false
Также укажите, как отлаживать следующую ошибку, когда-то после производственной сборки мы получаем такую ошибку, которая, несомненно, не имеет смысла:
ERROR Ошибка: StaticInjectorError [t - ›t]: StaticInjectorError (Platform: core) [t -› t]: NullInjectorError: Нет провайдера для t!
Надеюсь, мое объяснение имеет для вас какой-то смысл. Спасибо за ваше время и извините за этот длинный вопрос.
Наконец, к сведению: я уже удалил модули узлов и переустановил их.