将我所有的服务注入到 root 中是一个好习惯吗?

is it a good practice to inject all my services in root?

我们有一些不保存状态的服务,但我们将所有服务都注入到根目录中,我注意到这对我们的包的脚本评估时间有影响,所以我们应该摆脱这种做法吗?

Singleton 服务的问题(您遇到的问题)是因为只要应用程序运行,这些服务就会处于活动状态并存储在内存中,而对于非 Singleton,您可以使用OnDestroy() 生命周期钩子和垃圾收集器来清理内存。

话虽这么说,如果一个服务需要是单例的,它就需要是单例的。 这是一种在每种编程语言中都使用的模式。 如果您误用(或滥用)该模式,应用程序肯定会变慢。 例如,如果您只需要一个模块中的服务,您应该在模块级别(在模块的提供者数组中)而不是作为单例声明该服务。 如果您可以使用一个服务的多个实例(也就是您不需要在不同组件之间共享同一个实例),那么就不要使用单例。

但是如果你真的需要单例的话,也没有别的选择了。