Issue
Trying to implement a module following the official handbook, I get this error message:
Uncaught ReferenceError: exports is not defined
at app.js:2
But nowhere in my code do I ever use the name exports.
How can I fix this?
Files
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"
]
}
Solution
EDIT:
This answer might not work depending if you're not targeting es5 anymore, I'll try to make the answer more complete.
Original Answer
If CommonJS isn't installed (which defines exports), you have to remove this line from your tsconfig.json:
"module": "commonjs",
As per the comments, this alone may not work with later versions of tsc. If that is the case, you can install a module loader like CommonJS, SystemJS or RequireJS and then specify that.
Note:
Look at your main.js file that tsc generated. You will find this at the very top:
Object.defineProperty(exports, "__esModule", { value: true });
It is the root of the error message, and after removing "module": "commonjs",, it will vanish.
Answered By - iFreilicht
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.