我已经在谷歌上搜了两个星期,但是没有找到合适的答案,所以我来这里问。
描述
工具: Angular 4.4.6和Angular-CLI 1.4.9
我正在开发一个相当简单的应用程序。它有AuthModule、AdminModule、LayoutModule和SharedModule。如果我将所有这些模块添加到AppModule中,一切都很正常,但是问题是当我将这些模块添加到AppModule时,我的vender.js大小就会超过600kb (--aot)。
模块的说明。
ShareModule: 包括一些对每个模块通用的模型和服务,例如HttpService。 AuthModule: 包含简单的登录和注册组件,使用了来自共享模块的HttpService
因此,我决定将它们全部作为带有路由的延迟加载模块,这在这里有描述。这样可以将vendor...js的大小减少约50%,但是依赖关系不能正常工作。
尽管我在LazyLoaded模块中引用了ShareModule,但仍然无法解决这个问题,依赖关系不起作用。我知道,每个延迟加载的模块都会创建自己的DI树,但它不能解决除在延迟加载模块内创建和提供的依赖项以外的其他依赖项。
正如我在工具部分中所说,我正在使用Angular-CLI,它具有检测是否有相似模块被多次用于某些组件的功能,如果是,则为该模块创建一个common...js。但问题仍然存在,我无法在延迟加载模块中访问共享服务。
是否有可能或者有谁能指点一下我如何在延迟加载模块中加载共享服务?
谢谢