Angular 5 NullInjectorError: Нет поставщика для n

2

Когда я начинаю свой сайт с помощью ng serve все работает нормально, но каждый пытается запустить производство, получая сообщение об ошибке NullInjectorError: No provider for n. Я проверил все службы, которые, как я писал, включены в провайдеры NgModule. Поскольку это производство, все файлы были минитизированы и угашены, поэтому я не знаю, что именно вызывает проблему. Есть ли способ проверить это или, возможно, получить информацию об ошибке?

ERROR Error: StaticInjectorError(G)[n -> n]: 
StaticInjectorError(Platform: core)[n -> n]: 
NullInjectorError: No provider for n!
at n.get (main.94f42881e2fdceca85d7.bundle.js:1)
at main.94f42881e2fdceca85d7.bundle.js:1
at n (main.94f42881e2fdceca85d7.bundle.js:1)
at n.get (main.94f42881e2fdceca85d7.bundle.js:1)
at main.94f42881e2fdceca85d7.bundle.js:1
at n (main.94f42881e2fdceca85d7.bundle.js:1)
at n.get (main.94f42881e2fdceca85d7.bundle.js:1)
at Pi (main.94f42881e2fdceca85d7.bundle.js:1)
at main.94f42881e2fdceca85d7.bundle.js:1
at Li (main.94f42881e2fdceca85d7.bundle.js:1)
Теги:
angular
angular-cli
production-environment
production

1 ответ

11
Лучший ответ

Вероятно, это связано с различиями компилятора JIT (как раз вовремя) и AOT (раньше времени). Подробнее об этом читайте в документации.

Если вы запустите ng serve или ng build он по умолчанию будет использовать JIT. Однако с флагом --prod используется AOT.

Попробуйте запустить ng serve --aot или ng serve --prod чтобы увидеть более ng serve --prod сообщение об ошибке. Поскольку это больше не намного медленнее, я бы рекомендовал всегда использовать флаг --aot во время разработки. Вы увидите проблемы намного раньше.

  • 0
    Круто, это именно то, что мне было нужно!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню