2017-08-10 43 views
-1

我有一個組件庫,我在Typescript和Angular 2中創建了此庫。我的web應用程序通過npm使用此庫。組件庫本身使用JIT和AOT編譯構建,但使用JIT和AOT編譯的Web應用程序只能使用JIT編譯和錯誤成功構建。使用自定義的角度AOT組件庫 - JSON中的意外令牌t

以前,我有一個錯誤,說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

地址組件是我創建的組件之一,指定的文件是ngc爲其生成的元數據。

任何建議或調查渠道將不勝感激。

回答

0

經過一番調查後,我發現爲具有模板的組件生成的metadata.json文件無效。更具體地講,NGC內聯metadata.json作爲屬性裏面的HTML模板,但也有一些問題:

  • 模板屬性未用引號引用,例如:「模板」
  • 的價值模板屬性被包裹在單引號,而不是雙引號

要解決我的問題,讓我的web應用程序消耗從我的節點模塊的角模塊,我只是隻複製metadata.json文件爲角模塊放入我的包中,並省略所有其他的metadata.json文件。

這可能不是'正確的'修復程序,但它工作正常,至今我還沒有發現任何應用程序問題。