2016-08-11 22 views
11

मैं 5 मिनट क्विकस्टार्ट का उपयोग करके कोणीय 2/टाइपस्क्रिप्ट शुरू कर रहा हूं here मिला। मैंने एक आम समस्या को देखा है, लेकिन शायद थोड़ा अलग है। मैं "निर्यातित सदस्य" समस्याओं के सभी प्रकार का सामना कर रहा हूं। उदाहरण:कोई निर्यात सदस्य/नोड मॉड्यूल

app.module.ts से:

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 

रिटर्न

...node_modules/@angular2/core/index" has no exported member 'NgModule'. 

और

[email protected]/platform-browser/index" has no exported member 'BrowserModule'. 

और main.ts से:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 

फेंकता है:

[email protected]/platform-browser-dynamic/index" has no exported member 'platformBrowserDynamic'. 

मैं नोड संस्करण 4.4.7 और NPM संस्करण 3.10.5 चल रहा हूँ।

मैं समझता हूं कि ट्यूटोरियल के लिए प्रासंगिक संस्करण में वापस नोड या एनपीएम रोल करके ट्यूटोरियल के संदर्भ में ये संभवतः हल करने योग्य हैं। मुझे लगता है कि मैं क्या करना पसंद करूंगा कि नोड के वर्तमान संस्करणों के लिए प्रासंगिक ट्यूटोरियल से कोड कैसे बनाया जाए, इसका एक स्पष्टीकरण है।

ईटीए: ये त्रुटियां संकलन पर होती हैं, निष्पादन नहीं।

+0

क्या यह टाइपस्क्रिप्ट संकलन या निष्पादन स्तर पर एक त्रुटि है? –

+0

प्रश्न के लिए धन्यवाद, मुझे इसे जोड़ना चाहिए था। यह संकलन स्तर पर है। –

उत्तर

2

NgModule कक्षा node_modules/@angular/core/src/metadata.d.ts फ़ाइल से node_modules/@angular/core/index.d.ts एक के माध्यम से निर्यात की जाती है।

मुझे आश्चर्य है अगर आप सही तरीके से अपने tsconfig.json फ़ाइल में moduleResolution संपत्ति निर्दिष्ट करें:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", // <----- 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    } 
} 
+0

संकल्प ठीक है। माना जाता है कि मैं सिर्फ वाक्यविन्यास में उपयोग करने के लिए ट्यूटोरियल की प्रत्येक फ़ाइल टाइप करता हूं, लेकिन एक बार जब मैं संकलन त्रुटियों को प्राप्त करता हूं तो पहली चीज जो मैं करता हूं वह वापस जाती है और स्रोत से सीधे कॉपी/पेस्ट के साथ मेरे हाथ टाइप किए गए काम को प्रतिस्थापित करती है। इस मामले में आपने जो पोस्ट किया है वह वास्तव में मेरी tsconfig.json –

+0

की सामग्री है, शायद मैं बहुत शाब्दिक हूं, लेकिन मेरे मेटाडेटा.d.ts या index.d.ts फ़ाइल में NgModule का कोई निर्यात नहीं है। वास्तव में, 'NgModule' किसी भी फ़ाइल में बिल्कुल दिखाई नहीं देता है। –

+0

वास्तव में! Angular2 का कौन सा संस्करण आप उपयोग करते हैं क्योंकि यह आरसी 5 से दिखाई देता है ... अपनी 'package.json' फ़ाइल पर एक नज़र डालें। –

22

मेरे लिए यह VSCode संपादक मुद्दा था। सीधे शब्दों में फिर से खोलने संपादक का समाधान यह

+0

यहाँ एक ही है, धन्यवाद :) –

+1

HAHAHA कि इतने f *** अप एड है, मैं एक घंटे की तरह खर्च किया है कि साकार करने के लिए, यह आमतौर पर (अन्य भाषाएं के साथ) नहीं होता है क्योंकि मैं कर रहा हूँ एमएस टाइपप्रति (एमएस © यदि आप जानते हैं कि मैं क्या मतलब है) –

+0

बिल्कुल एटम के साथ एक ही मुद्दा है कि: IntiliJ लेकिन इस बार यह हुआ क्योंकि आप जानते हैं का उपयोग कर। मुझे इसे बंद करने की भी आवश्यकता नहीं थी, बस मिटा दिया गया और फिर टाइप किया गया, और कोई और त्रुटि नहीं हुई। – rbenvenuto

3

कि बाद कम से कम "2.0.0-rc.5"

को package.json में अपने सभी @angular निर्भरता अपडेट कर लें main.ts. में आपके आवेदन को सत्यापित बूटस्ट्रैप

2.0.0-rc.5 के चेंजलॉग के अनुसार आपके ऐप को बूटस्ट्रैप में बदलाव आया है। या अद्यतन ट्यूटोरियल गाइड https://angular.io/guide/quickstart भी देखें।

import {NgModule} from '@angular/core'; 

@NgModule({ 
    declarations: […], // directives, components, and pipes owned by this NgModule 
    imports: [BrowserModule], 
    providers: […], // additional providers 
    bootstrap: [MainComponent], 
}) 
class MyAppModule {} 

// Ahead of Time compile 
import {platformBrowser} from ‘@angular/platform-browser’; 

platformBrowser().bootstrapModuleFactory(MyAppModuleNgFactory); 

// JIT compile long form 
import {platformBrowserDynamic} from ‘@angular/platform-browser-dynamic’; 

platformBrowserDynamic().bootstrapModule(MyAppModule); 
1

पैकेज.जेसन फ़ाइल में, सभी निर्भरता जो आरसी 4 का उपयोग कर रहे हैं, उन्हें आरसी.5 द्वारा प्रतिस्थापित करें। फिर यह काम करेगा।

संबंधित मुद्दे