错误:仅在--prod模式下没有提供者

时间:2018-04-26 14:16:17

标签: angular npm

我已经读过某些未提供的模块或服务等可能导致此问题,但似乎所有内容都已到位。

完整错误是:

vendor.96643eaf6ee79e7b894d.bundle.js:1 ERROR Error: No provider for t!
at x (vendor.96643eaf6ee79e7b894d.bundle.js:1)
at S (vendor.96643eaf6ee79e7b894d.bundle.js:1)
at t._throwOrNull (vendor.96643eaf6ee79e7b894d.bundle.js:1)
at t._getByKeyDefault (vendor.96643eaf6ee79e7b894d.bundle.js:1)
at t._getByKey (vendor.96643eaf6ee79e7b894d.bundle.js:1)
at t.get (vendor.96643eaf6ee79e7b894d.bundle.js:1)
at ze (vendor.96643eaf6ee79e7b894d.bundle.js:1)
at qe (vendor.96643eaf6ee79e7b894d.bundle.js:1)
at Be (vendor.96643eaf6ee79e7b894d.bundle.js:1)
at ze (vendor.96643eaf6ee79e7b894d.bundle.js:1)
b @ vendor.96643eaf6ee79e7b894d.bundle.js:1

任何能够在生产模式下成功部署的帮助都会令人惊叹。我用这么少的信息找不到错误。有没有人知道扩展错误的方法来获得对调试有用的东西?

评论解决方案 如果在ng服务器中添加“--aot false”标志会停止显示错误, - 单独添加将显示相关的错误以启用调试。

2 个答案:

答案 0 :(得分:3)

我想利用@LucaTaccagni所说的内容:将您的应用程序置于生产模式这种方式旁边是无用的

Angular使用此变量来检测代码中的生产模式,但CLI不使用它。

如果您想在本地设备上模拟真实版本,请运行此

ng serve --prod --env dev

编辑如果AOT模式出现问题,您可以这样做

ng serve --aot

这会将很多标志设置为true(例如,AOT编译),而仅更改变量不会影响您的构建。

但正如他所说,一旦你完成了,你可以调试。

答案 1 :(得分:1)

在您的environment.ts文件中

尝试更改此标志:

 export const environment = {
          production: true, // should be false by default

然后尝试在开发模式下再次构建(ng服务应该有效)。现在你应该能够调试了。

您看到的错误:t是一个变量,它最小化了编译器在构建项目时所做的缩小,这是将代码隐藏到客户端所必需的。