2017-05-23 39 views
12

使用Angular。模塊'...'導入的意外值'...'。請添加@NgModule註釋

步驟:

  1. 克隆演示當前角度包裝標準這個簡單的UI LIB:https://github.com/jasonaden/simple-ui-lib

  2. 創建一個新的測試應用程序與ng new testApp

  3. npm linksimple-ui-lib/dist

  4. 在testApp

  5. 從簡單的UI-lib的進口的示例模塊插入testApp

  6. npm link simple-ui-lib

在app.module.ts文件:

import { BoxModule } from 'simple-ui-lib'; 

... 

@NgModule({ 
    ... 
    imports: [ 
    ... 
    BoxModule 
    ] 
}) 

的WebPack編譯罰款,但我得到這個錯誤在瀏覽器中,並沒有加載:

compiler.es5.js:1540 Uncaught Error: Unexpected value 'BoxModule' imported by the module 'AppModule'. Please add a @NgModule annotation.

我已經試過:

  • 清除我的NPM緩存
  • 重新安裝所有節點模塊
  • 強制所有角模塊在兩個項目中的相同版本
  • 經過所有的角模塊在兩個項目中都是相同的版本
  • 檢查TypeScript版本在兩個項目中是否相同
  • 使用其他樣品模塊組件,而不是simple-ui-lib
  • 創建了相同的設置
  • 一月

降級在simple-ui-lib用於構建該rollup版本一個全新的項目。如果我控制檯日誌BoxModule,我可以看到值存在,它似乎被註冊爲@NgModule,所以我對這個錯誤試圖告訴我什麼感到困惑。

我在我的搜索中看到了這個錯誤,但看起來它們幾乎總是由庫和主機應用程序之間的版本不匹配造成的。在我的情況下,版本是相同的。

版本:

  • 打字稿:2.2.0
  • @角/ CLI:1.0.4
  • @角/共同:4.1。3

任何想法?

更新:調查更多,看起來像是@ angular/cli本身的問題。在這裏打開一個錯誤:https://github.com/angular/angular-cli/issues/6429,但如果您有任何建議,請讓我知道。

+1

這可能會幫助: https://github.com/ angular/cli/blob/master/docs/documentation/stories/linked-library.md – Ryan

+0

我與ng2-charts中的ChartsModule有同樣的問題..但它只是一個問題。 – Jesse

回答

1

嘗試使用es6編譯器而不是es5。 我遇到過類似的問題前,換款編譯模式解決了這個問題

我也建議您使用的最後一個角CLI版本和升級到角5

相關問題