Typescript - Eroare necontrolată ReferenceError: exports nu este definit


Primesc acest mesaj de eroare (Uncaught ReferenceError: exports is not defined) când încerc să import alte fișiere ts în fișierul principal app.ts

app.ts

import { LanguagesConfigs } from './LanguagesConfigs';
let languagesConfigs = new LanguagesConfigs();

LanguagesConfigs.ts

export class LanguagesConfigs {
 code
}

tsconfig.json

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "sourceMap": true
    }
}

Îl compilez în Visual Studio Code. Generează fișierele .js și .js.map

Notă: Nu folosesc cadre precum Angular, doar TypeScript simplu. Notă2: CommonJS este instalat în proiect (Eroare de Referință TypeScript: exports nu este definit)

Răspuns #1

Când folosești export în codul tău, în timp ce în tsconfig.json ai "module": "commonjs", codul rezultat presupune stilul de modul commonjs.

De exemplu:

export class Foo{}

Rezultatul va fi:

.
.
.
exports.Foo = Foo;

Deci, când încerci să rulezi codul rezultat js, vei primi această eroare dacă mediul nu suportă commonjs.

De exemplu, browserele nu suportă commonjs, dar nodejs da. Poți adăuga suport pentru commonjs în browser folosind webpack sau doar să adaugi browserify