Когда я начинаю свой сайт с помощью 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)
Вероятно, это связано с различиями компилятора JIT
(как раз вовремя) и AOT
(раньше времени). Подробнее об этом читайте в документации.
Если вы запустите ng serve
или ng build
он по умолчанию будет использовать JIT
. Однако с флагом --prod
используется AOT
.
Попробуйте запустить ng serve --aot
или ng serve --prod
чтобы увидеть более ng serve --prod
сообщение об ошибке. Поскольку это больше не намного медленнее, я бы рекомендовал всегда использовать флаг --aot
во время разработки. Вы увидите проблемы намного раньше.