web-dev-qa-db-fra.com

Uncaught ReferenceError: les exportations ne sont pas définies dans les fichiers générés par Typescript

J'essaie de débuter avec le développement de TypeScript for Electron. Après avoir lutté pour taper pour node et jquery, j'ai finalement obtenu mon fichier .ts sans erreur.

Le problème est maintenant que lorsque je lance mon application, j'obtiens cette erreur:

index.js:2 Uncaught ReferenceError: exports is not defined

Ce sont les deux premières lignes de index.js:

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });

Je ne sais pas que cette ligne fait. TypeScript l'a ajouté lors de la compilation. Mon application fonctionne bien si je la supprime.

Comment puis-je me débarrasser de cette erreur?

Oh et voici mon tsconfig, si c'est pertinent.

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "moduleResolution": "node",
        "isolatedModules": false,
        "jsx": "react",
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "declaration": false,
        "noImplicitAny": false,
        "noImplicitUseStrict": false,
        "removeComments": true,
        "noLib": false,
        "preserveConstEnums": true,
        "suppressImplicitAnyIndexErrors": true
    },
    "exclude": [
        "node_modules",
        "typings/browser",
        "typings/browser.d.ts"
    ],
    "compileOnSave": true,
    "buildOnSave": false,
    "atom": {
        "rewriteTsconfig": false
    }
}
13
Blargmode

Il y a un problème avec la nouvelle version de TypeScript 2.2.1. Essayez d'utiliser l'ancienne version 2.1.6, qui a résolu exactement le même problème que vous.

La version 2.2.1 à la compilation ajoute cette ligne Object.defineProperty(exports, "__esModule", { value: true }); alors que l'ancienne version 2.1.6 ne le fait pas.

10
Patronaut

Je l'ai résolu avec un hack dans l'intégration HTML:

<script> var exports = {}; </script>
<script src="index.js"></script>

En gros, en lui donnant ce qu’il veut, un global exports variable.

Avec cela, mon fichier généré TypeScript (2.3.2) (es6) se charge.

56
Markus Hahn

J'ai eu le même problème avec un fichier js généré par le compilateur TypeScript. Même ligne :

Object.defineProperty(exports, "__esModule", { value: true });

Et même erreur:

game.js:2 Uncaught ReferenceError: exports is not defined

Je définissais une classe de jeu dans ce fichier. J'ai résolu le problème en ajoutant ceci à la fin de mon fichier game.ts:

export = Game;

Avec cela, le compilateur TypeScript a remplacé:

Object.defineProperty(exports, "__esModule", { value: true });

avec:

module.exports = Game;

Plus d'erreur pour moi après ça.

2
mab

J'avais le même problème, je viens de modifier le fichier systemjs.config.js comme mentionné ci-dessous

'npm:': '/ node_modules /' - // Sa valeur était simplement 'node_modules /' et j'ai ajouté '/' au début

'app': '/ src/app' - // Sa valeur était simplement 'app' et comme le chemin du dossier de l'application était différent, il est donc modifié en conséquence

loader: '/src/systemjs-angular-loader.js'} _ - // Sa valeur était simplement 'systemjs-angular-loader.js' et son emplacement était différent dans mon projet, de sorte que le chemin correct

0
Prasanna Miskin