2017-08-10 20 views
-1

私は、TypescriptとAngular 2で作成したコンポーネントライブラリを持っています。このライブラリは、Webアプリケーションによってnpm経由で使用されています。コンポーネント・ライブラリ自体は、JITとAOTの両方のコンパイルを使用してビルドされますが、それを使用するWebアプリケーションは、JITコンパイルとAOTコンパイルを使用するエラーを使用して正常に構築されます。JSONのカスタムアングルAOTコンポーネントライブラリを消費する

以前は、MyComponentsModuleがNgModuleやそのようなものではないというエラーがありました。これは、Angularコンパイラ(ngc)を使用して.metadata.jsonファイルを生成し、それらをノードモジュールに含めることで解決されました。

私が現在受けているエラーは
ERROR in Unexpected token t in JSON at position 556, resolving symbol AppModule in C:/Projects/MyWebApplication/src/app/app.module.ts, resolving symbol AppModule in C:/Projects/MyWebApplication/src/app/app.module.tsです。
この問題自体は実際には問題のあるJSONファイルではありません。しかし、ビルドプロセスでさらに報告されているメッセージがあります(これは関連していると推測できます)。
Failed to read JSON file C:/Projects/MyWebApplication/node_modules/mycustompackage/definitions/components/address-search/address-component.metadata.json

アドレスコンポーネントは、作成したコンポーネントの1つで、指定されたファイルはngcによって生成されたメタデータです。

調査の提案やアドバイスは非常に高く評価されます。

答えて

0

調査の結果、テンプレートを持つコンポーネント用に生成されたmetadata.jsonファイルが無効であることがわかりました。具体的には、NGCは、プロパティとしてmetadata.jsonの内側にテンプレートのHTMLをインライン化が、いくつかの問題があった:

  • テンプレートプロパティが引用符で囲まれていなかった例:「テンプレート」
  • 値のは、テンプレートプロパティは二重引用符ではなく単一引用符で囲まれました

私の問題を修正し、WebアプリケーションでノードモジュールからAngularモジュールを使用できるようにするには、Angularモジュールのmetadata.jsonファイル他のすべてのmetadata.jsonファイルを削除しました。

これは「正しい」修正ではない可能性がありますが、これはうまく機能しており、これまでのところアプリケーションに関する問題は見つかりませんでした。

関連する問題