2017-03-22 10 views
6

के बाद नामस्थान NodeJS नहीं मिल रहा है मेरे पास WebPack के साथ बनाया गया Angular2 एप्लिकेशन है। मैंने वेबपैक को v1.8 से v2 तक अपग्रेड किया, और सब कुछ ठीक काम कर रहा है।वेबपैक अपग्रेड

import Timer = NodeJS.Timer; 
.... 
apptInterval: Timer; 
.... 
this.apptInterval = setInterval(() => { ... }, 1000); 

उन्नयन इस मुझे एक त्रुटि देता है के बाद: TS2503: Cannot find namespace 'NodeJS'.

tsconfig.json इस तरह दिखता है:

{ 
"compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": ["es2015", "dom"], 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true 
    } 
} 

डॉक्स के लिए केवल एक समस्या यह पुराने कोड निम्नलिखित है कि कोणीय/वेबपैक में अब typings.json नहीं है; हालांकि, अगर मैं वेबपैक 1 निर्देशिका से कॉपी करता हूं, तो यह मदद नहीं करता है। सामग्री typings.json

{ 
"globalDependencies": { 
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255", 
    "node": "registry:dt/node" 
    } 
} 

दिलचस्प है कि अगर मैं NodeJS के संदर्भ निकालें, सब कुछ ठीक काम करता है है। इस तरह:

apptInterval: any; 
.... 
this.apptInterval = setInterval(() => { ... }, 1000); 

अगर मैं F12 डिबगर के तहत देखो, apptInterval के प्रकार ZoneTask है। मुझे यकीन है कि इसे मजबूत टाइप करने का एक तरीका है, लेकिन यह मुझसे बच निकला है। केवल सुझाव मैंने पाया typings install dt~node --global --save-dev चलाने के लिए (जो अनिवार्य रूप से typings.json अद्यतन करता था, लेकिन मदद नहीं करता है

उत्तर

2

[email protected]+ के लिए, @types का उपयोग करें:।

npm install -D @types/node @types/jasmine 

तुम अब भी पर लटका चाहते हैं typings के लिए, अपने tsconfig.json को typings/index.d.ts में शामिल हैं:

{ 
    "include": [ // or "files" 
    "typings/index.d.ts" 
    ] 
} 
+0

दुर्भाग्यवश, न तो विकल्प ने कोई फर्क नहीं पड़ता। – Felix

+0

अपना कोड VSCode में खोलें, और देखें कि intelliSense में 'NodeJS' मौजूद है या नहीं। यह होना चाहिए कि आपके पास चीजें सेटअप की कमी है। – unional

11

आप भी अपने काम निर्देशिका में tsconfig.app.json है, तो एक जोड़ने की कोशिश नोडप्रकार फ़ील्ड में। पसंद:

{ 
    "extends": "../tsconfig.json", 
    "compilerOptions": { 
    "outDir": "../out-tsc/app", 
    "module": "es6", 
    "baseUrl": "", 
    "types": ["node"] --> ADD THIS 
    }, 
    "exclude": [ 
    "test.ts", 
    "**/*.spec.ts" 
    ] 
} 
+0

यह मेरे लिए काम किया। धन्यवाद! –

+0

@LuigiRubino Glad मैं मदद कर सकता था! – Fzum