私のモジュールで実行ngc
すると、angular 4.4.3 (およびコンパイラ 4.4.3) を使用して正常に動作していました。5.0.0 (角度とコンパイラの両方) にアップグレードしたところ、次のエラーが発生しました。
エラー: 不正な状態: [...]/node_modules/@angular/common/common.d.ts のディレクティブ NgClass の概要を読み込めませんでした。
私の tsconfig.json ファイルは次のようになります。
{
"compilerOptions": {
"baseUrl": ".",
"declaration": true,
"stripInternal": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"module": "es2015",
"moduleResolution": "node",
"outDir": "[...]/",
"paths": {...},
"rootDir": "[...]/plugins/",
"target": "es5",
"skipLibCheck": true,
"lib": [
"es2015",
"dom"
],
"sourceMap": true,
"inlineSources": true,
"noImplicitAny": true
},
"files": [
"[...]/plugins/users/index.ts"
]
}
コンパイルしようとしているファイルから何が問題を引き起こしているのかわかりません。あちこちで同様のエラーを見てきましたが、共通モジュールとは直接関係ありません。他のモジュールでは発生しないため、エラーを再現するためにサンプルを投稿することは困難です
編集1:
私のセットアップは次のとおりです。MyModuleA
正常にビルドされ、ビルドされないモジュールをMyModuleB
使用するモジュールMyModuleA
。
@NgModule({
imports: [
CommonModule,
IonicModule,
TranslateModule.forChild()
]
})
export class MyModuleA {
static forRoot(): ModuleWithProviders {
return {
ngModule: MyModuleA,
providers: [
ModuleAService
]
};
}
}
@NgModule({
imports: [
HttpClientModule,
MyModuleA
]
})
export class MyModuleB {
/**
* Instantiate module (for main module only).
*/
static forRoot(): ModuleWithProviders {
return {
ngModule: MyModuleB,
providers: [
ModuleBService
]
}
}
}
に含めるCommonModule
とMyModuleB
、別のエラーが発生します。
Error: Illegal state: Could not load the summary for directive ActionSheetCmp in [...]/node_modules/ionic-angular/components/action-sheet/action-sheet-component.d.ts
IonicModule
これでMyModuleB
、次のものillegal state error
(今回は翻訳モジュールにリンク) を含めることができますが、これらのモジュールをまったく使用しMyModuleB
ていないのに、なぜそれらすべてをインポートする必要があるのでしょうか?