'Error Typescript - Uncaught ReferenceError: exports is not defined
I am facing this issue. I created this simple app.ts to learn about promises in Typescript:
import {Promise} from 'es6-promise'
(() => {
console.log('inicio');
const prom1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Se termino el timeout');
}, 1000);
});
prom1
.then(mensaje => console.log(mensaje))
.catch(err => console.warn(err))
console.log('fin');
})();
Then I compile this (tsc app.ts). And it had create an app.js:
"use strict";
exports.__esModule = true;
var es6_promise_1 = require("es6-promise");
(function () {
console.log('inicio');
var prom1 = new es6_promise_1.Promise(function (resolve, reject) {
setTimeout(function () {
resolve('Se termino el timeout');
}, 1000);
});
prom1
.then(function (mensaje) { return console.log(mensaje); })["catch"](function (err) { return console.warn(err); });
console.log('fin');
})();
Also, this is the tsconfig.json
{
"exclude": ["typescript"],
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"strict": true,
"noImplicitAny": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true
}
}
but when I run this in the browser console, it appears the following alert:
Uncaught ReferenceError: exports is not defined
at app.js:2
I am frustrated and have tried everything that has appeared on the internet and nothing works. I am trying to learn how to use Angular
Solution 1:[1]
but when I run this in the console
If you mean the browser console, that's as expected. That code isn't compiled for use standalone in a browser, it's compiled to be used by something that understands CommonJS modules. (Browsers don't, without library/bundler support.)
If you just want to compile TypeScript to JavaScript and run the result in a browser directly, tell TypeScript to output ESM (via the module
option, setting it to "ESNext"
).
But for an Angular project, you probably want to use a bundler like Webpack or Rollup instead.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | T.J. Crowder |