web-dev-qa-db-fra.com

Uncaught ReferenceError: les exportations ne sont pas définies et nécessitent

J'utilise angularjs et TypeScript pour créer une application. J'ai un problème avec cette erreur que je ne peux pas résoudre.

Voici mon code * .ts

export var NgApp = new application.Startup();

///<reference path="../../../../../typings/tsd.d.ts"/>
import {NgApp} from "../../bootstrap";



module views.components.home {
    export class HomeComponent {
        public constructor() {
        }

        public static factory():Function[] {
            return [
                () => new HomeComponent()
            ]
        }

    }

}

NgApp.registerComponents(views.components.home,() => this.app.controller);

Voici ma tâche GULP

let tsResult = gulp.src('src/**/*.ts').pipe(ts({
    module: 'commonjs',
    sourceMap: true
}));

let taskTs = tsResult.js.pipe(gulp.dest('built/'));

C'est mon erreur: Uncaught ReferenceError: les exportations ne sont pas définies

La question qui se pose est la suivante: comment utiliser une importation comme es6 en texte dactylographié? Qu'est-ce qui me manque?

7
IamStalker

J'utilise angular 1.6 et webpack, Cela fonctionne de mon côté quand j'ai changé le module en "umd"

UMD: Universal Module Definition (définition de module universel) Ceci a provoqué la demande d'un modèle «universel» Prenant en charge les deux styles (AMD et CommonJS). 

référence: http://davidbcalhoun.com/2014/what-is-AMD-commonjs-and-umd/

collé ici est mon tsconfig.json après l'avoir changé, je lance $ tsc

{
  "compilerOptions": {
    "target": "es5",
    "module": "umd",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [ "es2015", "dom" ],
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "allowUnreachableCode": true
  },
  "exclude": [
    "node_modules"
  ]
}

alors mon erreur "exportations n'est pas définie" est partie.

11
KShewengger

cliquez ici "Résolu enfin" J'ai également eu la même erreur. J'ai modifié le module: "commonjs" en "module": "es6", car le ciblage de ES5 supprime les instructions d'importation/exportation, ces outils ne peuvent donc pas supprimer les exportations non utilisées.

{
    "compilerOptions": {
    "target": "es5",
    "module": "es6",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [ "es2015", "dom" ],
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
    }

}
2
Umesh Shende

Comment utiliser import comme es6 dans dactylographie? Qu'est-ce qui me manque?

Vous devez utiliser un chargeur de module. Voici un exemple qui utilise webpack: https://github.com/AngularClass/angular2-webpack-starter

0
basarat