我对“platformBrowserDynamic().bootstrapModule(app.app_module)”调用有问题,错误消息是“未捕获错误:断言错误:传入的类型不是 NgModuleType,它没有 'ɵmod' 属性”。
但是我可以在调试过程中看到这个属性:应用程序模块 NgModuleprotoemod属性
app.app_module 是一个新的 @NgModule 实例,引导我的自定义应用程序组件。我使用了 TypeScript。有人知道为什么会发生这种情况吗?
另外这里还有源 JS 代码https://gist.github.com/sunnygleason/74e84acd0a03a925ec901594723ce876我正在将其转换为 Typescript Angular CLI 项目。这里是https://github.com/AnatoliYatskevich/WIA
我更改的具体文件是:https://github.com/AnatoliYatskevich/WIA/blob/master/src/main.ts
https://github.com/AnatoliYatskevich/WIA/blob/master/src/index.html
https://github.com/AnatoliYatskevich/WIA/blob/master/src/app/app.component.ts
https://github.com/AnatoliYatskevich/WIA/blob/master/src/app/app.module.ts
工具 WebStorm,来自那里的示例格式https://www.pubnub.com/docs/angular2-javascript/pubnub-javascript-sdk.
Thanks
错误的发生是由于错误模块导入(有时它会被抛出为“无法读取未定义的属性'ngModule'”,这也在更深层次上设置为“传入的类型不是NgModuleType,它没有'ɵmod'属性”)。
所以以下过程(对两种情况都进行了一些调整)
如何找到错误的精确位置?(特别是在具有多个相互依赖的模块的复杂项目中,例如我们团队的项目)
core.js:26131 未捕获的类型错误:无法读取未定义的属性“ngModule”
at 是 ModuleWithProviders(核心.js:26131)
在 ExpandModuleWithProviders (core.js:26125)
在Array.map()
在 Function.get (core.js:25781)
在 registerNgModuleType (core.js:24103)
在 core.js:24114
在Array.forEach()
在 registerNgModuleType (core.js:24114)
在新的 NgModuleFactory$1 (core.js:24211)
在compileNgModuleFactory__POST_R3__(core.js:27755)
在浏览器的开发工具中,在发生错误的行放置一个调试断点(在本例中为 core.js:26131)。那里的代码对我们没有多大帮助,因为它是错误记录功能(可能是defaultErrorLogger
)。尽管如此,当断点被触发时,我们可以继续我们的开发工具调用栈回到下面的代码(或类似的代码),错误真正发生的地方:
function isModuleWithProviders(value) {
return value.ngModule !== undefined;
}
当value
未定义,所以我们可以在这里放置一个带有条件的条件断点!value
,这将显着加快错误追踪过程(仅因错误的模块导入而触发)。
当条件断点被触发时,我们可以再次向上调用调用堆栈,直到get
我们可以访问的方法moduleType.name
查找导致错误的模块的名称。
In 第二部分,我们打开具有该名称的模块,在其中我们可以使用分而治之的方法,通过注释模块导入,直到错误消失。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)