2017-04-04 13 views
5

Mam aplikację Angular (2) skonfigurowaną za pomocą pakietu internetowego, który importuje moduły z innego wspólnego repozytorium.Problemy z ngModule podczas korzystania z Angular 4

Więc, wspólne repozytorium ma plik common.module.ts z mniej więcej tak:

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

a następnie w moim głównym aplikacji mam importującego to w moich app.module.ts

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

Działa to dobrze, tak jak w Angular2, ale potem próbuję przeprowadzić migrację do Angular 4.0 w moim głównym projekcie (bez dotykania wspólnego repozytorium, ponieważ jest używane przez inne repozytoria, które nie są migrowane). Więc mogę zmienić swoje wersje w moim package.json i odbudować i wszystko wydaje się być w porządku, ale kiedy załadować aplikację w przeglądarce otrzymuję ten

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

Ktoś wie co się dzieje? CommonModule jest już zadeklarowany za pomocą @NgModule. Sprawdziłem node_modules w sprawie i jest coś nie tak z importowanych plików i znalazł common_module.d.ts który zawiera

... 
export declare class CommonModule {} 

ale to mnie jest w porządku, to plik lufa i dekorator został usunięty z tutaj.

Wszelkie pomysły?

+0

Czy wymazałeś moduł node_modules przed przywróceniem poprzedniego pakietu package.json? – Stanislasdrg

+0

Wymazałem node_modules, zmieniłem wersję na Angular 4 i '' 'yarn install''' ponownie. – David

+0

'CommonModule' również pochodzi z' @angular \ common', jakoś to zepsuło? Czy próbowałeś zmienić nazwę swojego CommonModule? –

Odpowiedz

2

Ok, w końcu dostałem pomoc w Angular github, aby działało.

Więc, co musiałem zrobić, to zmienić w zależności moim wspólnym projekcie używać żadnych kątową bibliotekę> = 2.0.0, jak to

"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", 

biegnę yarn zaktualizować współzależności, a następnie wcisnąć zmiany do mojego repozytorium github.

Raz w moim projekcie app, mam ulepszony mój wspólną bibliotekę działa yarn upgrade my_github_repo/common#feature/angular4 (funkcja/angular4 to nazwa oddziału w moim wspólnym projekcie, gdzie pchnął zmianami)

i to, w ten sposób nie tylko jedna biblioteka kątowa w moim projekcie 4.0.0, której używa moja aplikacja.

Testowałem to z inną aplikacją z Angular 2.0.0, która również używa wspólnej biblioteki iw tym przypadku wersja kątowa w moim module node_modules to 2.0.0, więc wszystko dobrze.

+0

w którym pliku zadeklarowałeś klucze "dependecies"? Mam ten sam problem i próbuję znaleźć rozwiązanie tego błędu –

Powiązane problemy