2017-04-04 43 views
5

का उपयोग करते समय ngModule के साथ समस्याएं मेरे पास एक कोणीय (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 { } 

यह ठीक काम करता है क्योंकि यह कोणीय 2 में है, लेकिन फिर मैं अपने मुख्य प्रोजेक्ट में कोणीय 4.0 में माइग्रेट करने की कोशिश कर रहा हूं (सामान्य भंडार को छूए बिना, क्योंकि यह अन्य भंडारों द्वारा उपयोग किया जाता है जो या तो माइग्रेट नहीं होते हैं)। तो मैं अपने package.json में मेरे संस्करणों को बदलने और पुनर्निर्माण और सब कुछ ठीक लग रहा है, लेकिन फिर जब मैं ब्राउज़र में एप्लिकेशन लोड मैं इस

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

किसी को पता है क्या हो रहा है मिल सकता है? CommonModule पहले ही @NgModule का उपयोग करके घोषित कर दिया गया है। मैं मामले में node_modules की जाँच की और वहाँ कुछ आयातित फाइलों के साथ गलत है और common_module.d.ts जो

... 
export declare class CommonModule {} 

लेकिन है कि मेरे पास ठीक है शामिल पाया गया कि प्रति बैरल फ़ाइल है और डेकोरेटर से हटा दिया गया यहाँ।

कोई विचार?

+0

क्या आपने अपने पूर्व पैकेज.जेसन पर वापस रोल करने से पहले अपने नोड_मोड्यूल मिटा दिए? – Stanislasdrg

+0

मैंने node_modules मिटा दिया, संस्करण को कोणीय 4 और '' 'yarn install''' में बदल दिया। – David

+0

'कॉमन मॉड्यूल' भी '@angular \ common' से आता है, किसी भी तरह से यह गड़बड़ हो रहा है? क्या आपने अपना कॉमन मॉड्यूल नाम बदलने का प्रयास किया था? –

उत्तर

2

ठीक है, मुझे अंततः Angular github में काम करने में मदद मिली।

तो, मुझे क्या करना था इस

"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 चलाने निर्भरता को अद्यतन और फिर परिवर्तन पुश करने के लिए की तरह, किसी भी कोणीय पुस्तकालय> = 2.0.0 उपयोग करने के लिए, मेरा परियोजना में परिवर्तन निर्भरता है मेरे github repo करने के लिए।

मेरे ऐप परियोजना में

एक बार, मैं अपने सामान्य पुस्तकालय चल yarn upgrade my_github_repo/common#feature/angular4

और बस हो गया (फीचर/angular4, मेरा परियोजना में शाखा का नाम जहां मैं परिवर्तन धक्का दिया है) के लिए उन्नत, इस तरह से है मेरी परियोजना में केवल एक कोणीय पुस्तकालय, 4.0.0, जो मेरा ऐप उपयोग करता है।

मैंने एंगुलर 2.0.0 के साथ एक और ऐप के साथ इसका परीक्षण किया जो सामान्य पुस्तकालय का भी उपयोग करता है और इस मामले में मेरे नोड_मोड्यूल में कोणीय का संस्करण 2.0.0 है, इसलिए सब अच्छा है।

+0

किस फ़ाइल में आपने "निर्भरता" कुंजी घोषित की थी? मुझे एक ही समस्या है और मैं इस त्रुटि के लिए समाधान ढूंढने की कोशिश कर रहा हूं –