web-dev-qa-db-ja.com

**のエラーはNgModuleではありません

私はこのNgModuleを持っています:

@NgModule({
    imports: [
        CommonModule
    ],
    exports: [
        SP21LoadingBar
    ],
    declarations: [SP21LoadingBar]
})
export class SP21LoadingBarModule { }

Cliは私に言っていません

ERROR in SP21LoadingBarModule is not an NgModule

注意:コードを取得してプロジェクトに入れると、正常に機能します。しかし、モジュール(およびコンポーネント)をプロジェクトから取り出してnpmパッケージに入れるとすぐに、そのエラーが発生します。

Angularは2.3.1で使用されています、Angular CLI 1.0.0-beta.24、TypeScript 2.0.10

9
Stefan S

最終的な解決策:

Ahead-Of-Timeコンパイラ(ngc)を使用してライブラリをコンパイルする必要があります。それはそれを読むためにライブラリを含むプロジェクトを割り当てるいくつかのメタデータを追加します。

次のリンクをご覧ください。

https://angular.io/docs/ts/latest/cookbook/aot-compiler.htmlhttps://medium.com/@cyrilletuzi/how-to-build-and -publish-an-angular-module-7ad19c0b4464#.9y88ipdk7

4
Lupe

ngcを直接使用するのではなく、tsc(@ angular/compiler-cli)を使用してライブラリをコンパイルする必要があります。これはあなたに当てはまりますか?

1
Jose Enrique

私はこの問題に2日間を費やしました。追加

"angularCompilerOptions": {
    "skipTemplateCodegen": true
}

tsconfig.jsonに追加すると、必要なすべてのメタデータファイルが作成されます。わたしにはできる。

0
Mher Aghabalyan