我有一个最初使用 Angular 6 开发的应用程序,并且已经在生产环境中运行了两年多。本周我开始使用 Angular 更新指南将其逐步更新到最新的稳定版本。
从 6 到 7 完美无缺,但试图从 7 到 8 一直很痛苦。跟随指南进展顺利;我唯一不需要包含在指南中的就是从ng4-loading-spinner
to移开ngx-loading-spinner
。该应用程序可以毫无问题地编译和加载急切的模块,但所有延迟加载的模块(我可以在不登录的情况下导航到的模块)都会抛出“BrowserModule 已加载”异常。
我在这里找到了所有相关的问题和答案,关于只导入BrowserModule
一次,甚至从我的应用程序模块中删除了一些可能已经导入BrowserModule
的导入(包括ngx-loading-spinner
)。
问题:
- 从 7 更新到 8 是否存在已知问题,我无法解决我的问题?
- 如果没有,我怎样才能找到罪魁祸首?
堆栈跟踪:
Error: BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.
at new BrowserModule (platform-browser.js:4394)
at _createClass (core.js:30461)
at _createProviderInstance (core.js:30426)
at initNgModule (core.js:30332)
at new NgModuleRef_ (core.js:31561)
at createNgModuleRef (core.js:31544)
at Object.debugCreateNgModuleRef [as createNgModuleRef] (core.js:44911)
at NgModuleFactory_.create (core.js:46088)
at MapSubscriber.project (router.js:6383)
at MapSubscriber._next (map.js:29)
at resolvePromise (zone-evergreen.js:797)
at resolvePromise (zone-evergreen.js:754)
at zone-evergreen.js:858
at ZoneDelegate.invokeTask (zone-evergreen.js:391)
at Object.onInvokeTask (core.js:39680)
at ZoneDelegate.invokeTask (zone-evergreen.js:390)
at Zone.runTask (zone-evergreen.js:168)
at drainMicroTaskQueue (zone-evergreen.js:559)