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?
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.
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
}
}
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