2017-04-04 46 views
5

我已經與的WebPack其中進口模塊從另一種常見的存儲庫構成的角(2)的應用程序。問題4

所以,共同的資料庫有這樣的一個common.module.ts文件:

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

,然後在我的主要的應用程序,我在我的app.module.ts導入此

@NgModule({ 
    imports: [ 
    ... 
    CommonModule, 
    ], 
    declarations: [...], 
    providers: [...], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

這在Angular2中正常工作,但後來我試圖在我的主項目中遷移到Angular 4.0(不使用公共存儲庫,因爲其他存儲庫也沒有使用它)。 所以,我改變我的版本在我的package.json和重建,一切似乎很好,但後來當我在瀏覽器中加載應用程序,我得到這個

Uncaught Error: Unexpected value 'CommonModule' imported by the module 'AppModule'. Please add a @NgModule annotation.

任何人都知道這是怎麼回事? CommonModule已經使用@NgModule進行了聲明。 我檢查,以防node_modules並且有一些錯誤導入的文件,發現其中含有

... 
export declare class CommonModule {} 

但是這對我來說是罰款common_module.d.ts,這桶文件和裝飾已移出這裏。

任何想法?

+0

你有沒有回滾到你以前的package.json前擦除node_modules? – Stanislasdrg

+0

我擦除node_modules,又改版本角4和'''紗install'''。 – David

+0

'CommonModule'也來自'@angular \ common',是不知怎的搞亂了?你有沒有嘗試重命名你的CommonModule? –

回答

2

好吧,我終於得到了幫助Angular github得到它的工作。

所以,我不得不這樣做是我常用的工程變更依賴於使用任何角度庫> = 2.0.0,這樣

"dependencies": { 
"@angular/core": ">=2.0.0", 
"@angular/common": ">=2.0.0", 
"@angular/router": ">=3.0.0", 
"@angular/http": ">=2.0.0", 
"@angular/platform-browser": ">=2.0.0", 

我跑yarn更新依賴關係,然後推變化到我的github回購。

在我的應用程序的項目

有一次,我升級我跑 yarn upgrade my_github_repo/common#feature/angular4 (功能/ angular4是我共同的項目分支的名字,我推的變化)

,就是這樣公共庫,這種方式有我的項目中只有一個角度庫,4.0.0,這是我的應用程序使用的。

我與角2.0.0其他應用程序也使用了公共庫和在這種情況下角的版本在我node_modules是2.0.0測試這一點,所以都好。

+0

在哪個文件你聲明的「依賴條件」鍵? 我有同樣的問題,我試圖找到這個錯誤的解決方案 –