Joh*_*ohn 6 angular angular-aot
在Angular v6中,当尝试构建我的库时,我遇到了一个极端的非描述性问题 BUILD ERROR Cannot read property 'type' of null
BUILD ERROR
Cannot read property 'type' of null
TypeError: Cannot read property 'type' of null
at /Users/John/apps/tests/service-work/node_modules/@angular/compiler/bundles/compiler.umd.js:15378:27
at Array.forEach (<anonymous>)
at removeSummaryDuplicates (/Users/John/apps/tests/service-work/node_modules/@angular/compiler/bundles/compiler.umd.js:15377:11)
at TemplateParser.tryParseHtml (/Users/John/apps/tests/service-work/node_modules/@angular/compiler/bundles/compiler.umd.js:14806:34)
at TemplateParser.tryParse (/Users/John/apps/tests/service-work/node_modules/@angular/compiler/bundles/compiler.umd.js:14799:21)
at TemplateParser.parse (/Users/John/apps/tests/service-work/node_modules/@angular/compiler/bundles/compiler.umd.js:14780:27)
at AotCompiler._parseTemplate (/Users/John/apps/tests/service-work/node_modules/@angular/compiler/bundles/compiler.umd.js:20483:43)
at AotCompiler._createTypeCheckBlock (/Users/John/apps/tests/service-work/node_modules/@angular/compiler/bundles/compiler.umd.js:20250:23)
at /Users/John/apps/tests/service-work/node_modules/@angular/compiler/bundles/compiler.umd.js:20220:27
at Array.forEach (<anonymous>)
Run Code Online (Sandbox Code Playgroud)
已经解决了这个问题,我正在发布这篇文章,以帮助遇到此问题的其他任何人。
看来我对这个问题的诊断是不正确的(已经过去太久了,我已经记不清我是如何解决它的)。在 Angular 存储库中查看这个问题,了解听起来正确的诊断,
经过大量调试后,我发现了:
我的自定义库(我们称之为库 A)将另一个自定义库(库 B)导入到库 A 的NgModule. 库 B 从它的 main 导出几个组件和模块NgModule。问题是,虽然库 B 从它的导出组件和模块NgModule,但我未能通过 javascript/typescript 导出这些组件和模块。解决方案是确保通过我在NgModule.
问题代码示例
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { LibraryBComponent } from './library-b.component';
@NgModule({
imports: [CommonModule],
declarations: [LibraryBComponent],
exports: [LibraryBComponent],
})
export class LibraryBModule {}
Run Code Online (Sandbox Code Playgroud)
解决方案代码
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { LibraryBComponent } from './library-b.component';
export { LibraryBComponent } // <-- addition
@NgModule({
imports: [CommonModule],
declarations: [LibraryBComponent],
exports: [LibraryBComponent],
})
export class LibraryBModule {}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4332 次 |
| 最近记录: |