Typescript ReferenceError: exports ist nicht definiert
Beim Versuch, ein Modul gemäß dem offiziellen Handbuch zu implementieren, erhalte ich diese Fehlermeldung:
Ungefangener ReferenceError: exports ist nicht definiert
bei app.js:2
Aber nirgendwo in meinem Code verwende ich den Namen exports
.
Wie kann ich das beheben?
Dateien
app.ts
let a = 2;
let b:number = 3;
import Person = require ('./mods/module-1');
module-1.t
export class Person {
constructor(){
console.log('Person Class');
}
}
export default Person;
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"noImplicitAny": false,
"sourceMap": true,
"outDir": "scripts/"
},
"exclude": [
"node_modules"
]
}
76
3
Einige andere Lösungen für dieses Problem
EDIT:
Diese Antwort könnte nicht funktionieren, wenn Sie nicht mehr auf
es5
abzielen, ich werde versuchen, die Antwort vollständiger zu machen.Original-Antwort
Wenn CommonJS nicht installiert ist (welches
exports
definiert), müssen Sie diese Zeile aus Ihrertsconfig.json
entfernen:Wie aus den Kommentaren hervorgeht, kann es sein, dass dies allein mit späteren Versionen von
tsc
nicht funktioniert. Wenn das der Fall ist, können Sie einen Modul-Loader wie CommonJS, SystemJS oder RequireJS installieren und diesen dann angeben.Hinweis:
Schauen Sie sich Ihre
main.js
-Datei an, dietsc
erzeugt hat. Sie werden dies ganz oben finden:Das ist die Ursache der Fehlermeldung, und nach dem Entfernen von
"module": "commonjs",
, wird sie verschwinden.Ich hatte das gleiche Problem und löste es, indem "es5" Bibliothek zu tsconfig.json wie folgt: