Ich habe Angular2-Anwendung, die mit WebPack erstellt wird. Ich habe WebPack von V1.8 auf V2 aktualisiert, und alles scheint gut zu funktionieren. Das einzige Problem ist, dass der alte Code hat die folgende:Kann Namespace NodeJS nach dem Upgrade des Webpacks nicht finden
import Timer = NodeJS.Timer;
....
apptInterval: Timer;
....
this.apptInterval = setInterval(() => { ... }, 1000);
Nach dem Upgrade das gibt mir eine Fehlermeldung: TS2503: Cannot find namespace 'NodeJS'.
tsconfig.json sieht wie folgt aus:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es2015", "dom"],
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
}
}
Die Dokumentation für Angular/Webpack nicht mehr typings.json
; Aber selbst wenn ich aus dem Webpack 1-Verzeichnis kopiere, hilft das nicht. Der Inhalt ist typings.json ist
{
"globalDependencies": {
"jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
"node": "registry:dt/node"
}
}
Interessant, wenn ich Referenzen auf NodeJS entfernen, funktioniert alles gut. Wie folgt aus:
apptInterval: any;
....
this.apptInterval = setInterval(() => { ... }, 1000);
Wenn ich unter F12 Debugger sehen, ist die Art der apptInterval ZoneTask
. Ich bin sicher, dass es einen Weg gibt, es stark zu machen, aber es entkommt mir. Der einzige Vorschlag, ich fand, war typings install dt~node --global --save-dev
(der im wesentlichen aktualisiert typings.json laufen, aber nicht hilft
Leider machte keine Option einen Unterschied. – Felix
Öffnen Sie Ihren Code in VSCode und prüfen Sie, ob 'NodeJS' in der intelliSense existiert. Es sollte dort sein, dass Sie Dinge richtig eingerichtet haben. – unional