2016-01-20 25 views
6

ich AngularJS und Typoskript mit einigen App zu erstellen, ich bin mit diesem Fehler einen Fehler, dass ich nichtUncaught Reference: Exporte nicht definiert sind und erfordern

Hier lösen kann, ist mein * .ts Code

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); 

Hier ist meine GULP Aufgabe

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

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

Das ist mein Fehler ist: Uncaught Reference: Exporte nicht definiert ist

Die Frage ist: Wie kann ich importieren wie es6 in Typoskript? Was ich vermisse?

+1

Versuchen Sie mit dem Modul zu kompilieren: "amd" – Amid

+0

@Amid Nope hilft es nicht – IamStalker

+0

Ich nehme an, Sie haben einen Link zu system.js auf Ihrer Webseite. Sie können auch versuchen, mit dem Modul: system zu kompilieren, wie im eckigen Quickstart-Handbuch angegeben. – Amid

Antwort

10

Ich benutze Winkel 1.6 und webpack, es auf meiner Seite funktioniert, wenn ich das Modul zu „umd“

UMD: Universal Module Definition This has brought about the push for a “universal” pattern that supports both styles (AMD and CommonJS)

reference: http://davidbcalhoun.com/2014/what-is-amd-commonjs-and-umd/

hier eingefügt geändert ist mein tsconfig.json, nachdem ich es geändert, ich betreibe 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" 
    ] 
} 

dann meine "Exporte ist nicht definiert" Fehler verschwunden ist.

0

How can I use import like es6 in typescript? What I am missing?

Sie müssen einen Modullader verwenden. Hier ist ein Beispiel, das webpack verwendet: https://github.com/AngularClass/angular2-webpack-starter

+0

sorry Kumpel Ich benutze angularjs 1.5 und bin eigentlich nicht wirklich mit webpack vertraut, kann ich systemjs mit denselben Fähigkeiten benutzen, um Module zu laden? – IamStalker

+0

Sie können. Aber es ist viel mehr blutig (und unnötig für mich als Webpack tut schon alles, was ich brauche) – basarat

2

click here „Gelöst schließlich:“ Ich war auch gleiche Fehler i Modul geändert: „Commonjs“ auf „Modul“: „es6“, weil Targeting-ES5 die Import/Export-Anweisungen entfernen, Daher können diese Tools nicht verwendete Exporte nicht entfernen.

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

} 
Verwandte Themen