Javascript NullInjectorError:没有覆盖的提供程序!NgxToastr

Javascript NullInjectorError:没有覆盖的提供程序!NgxToastr,javascript,angular,typescript,angular-services,ngx-toastr,Javascript,Angular,Typescript,Angular Services,Ngx Toastr,这一天我一直在挠头。我在我的angular应用程序中使用Ngx Toastr包。以下是我认为有助于你理解问题的几点 在dev服务器(ng-serve)中,我没有得到任何错误,也没有Nullinjector问题,然后我使用以下命令(ng-build)进行生产构建。在这一点之前,一切正常。现在我需要优化bundle的大小,所以我运行了这个(ng build--prod)。构建成功没有错误现在是时候提供代码了(我正在使用节点服务器提供此服务)。问题从这里开始- 首先,它要求 'NullInject

这一天我一直在挠头。我在我的angular应用程序中使用Ngx Toastr包。以下是我认为有助于你理解问题的几点

  • 在dev服务器(ng-serve)中,我没有得到任何错误,也没有Nullinjector问题,然后我使用以下命令(ng-build)进行生产构建。在这一点之前,一切正常。现在我需要优化bundle的大小,所以我运行了这个(ng build--prod)。构建成功没有错误现在是时候提供代码了(我正在使用节点服务器提供此服务)。问题从这里开始-

  • 首先,它要求

  • 'NullInjectorError:没有ToastrService的提供程序'

    它来自Ngx Toastr包,它本身就有意义,因此我将该服务添加到appmodules中,也添加到providers数组中的其他延迟加载模块中。所以在这之后,错误就消失了。但接下来我想谈的是-

  • 接下来,它要求“NullInjectorError:没有覆盖的提供程序!”所以我认为包中必须有这个服务,它需要添加到providers数组中。因此,我尝试从包中导入它,并将其添加到providers数组中,如下所示:
  • 从“ngx toastr/Overlay/Overlay”导入{Overlay}

    这样做会产生以下错误

    未找到模块:错误:无法解析“ngx toastr/overlay/overlay”

  • 接下来,我尝试搜索此问题,并找到一些stackoverflow解决方案,建议添加以下行:
  • 从'@angular/cdk/overlay'导入{OverlayModule}

    我在每个模块的imports数组中添加了这个模块。什么都没变

    现在我不知道要导入什么以及在哪里导入。我也不确定我是否走对了,或者应该从哪里开始调查。我也怀疑这个错误是来自那个软件包还是什么!!因为它应该在不隐式导入这些服务的情况下工作

    我在生产构建之前运行以下命令以获取错误:

    ng serve--prod--optimization=false

    还请提及如何调试以下错误,在生产构建之后的某个时候,我们会遇到这样的错误,这无疑是毫无意义的:

    错误:“StaticInjectorError[t->t]: 静态注入错误(平台:核心)[t->t]: NullInjectorError:没有t的提供程序!”

    我希望我的解释对你有意义。谢谢你的时间,很抱歉问了这么长的问题


    最后,供参考:我已经删除了节点模块并重新安装了它。

    请确保您使用的是与angular和typescript版本兼容的ngx toastr版本


    ngx toastr v13需要角度>=10

    在应用程序模块中注册它调用的所有内容。ts@mwilson我不明白你的意思。你能更详细地描述一下吗?@Souradip,除了在开发版本中,我们遇到了完全相同的问题。但似乎在降级版本后排序。如果您使用的是13.0.0版,请尝试安装12.1.0谢谢您的回答。我现在已经安装了合适的软件包,但得到了相同的NullInjector错误。有没有办法检查其他软件包与Angular版本的兼容性?有人可能错误地安装了其他软件包的错误版本。调试这种错误的最佳方法是什么。现在,我正在运行我的项目,在angular.json中将优化设置为false,但这会导致一个很大的包大小。感谢您的时间当您没有包锁或节点模块时,第一次安装npm时应该列出任何具有对等依赖关系的警告