2016-04-10 9 views
2

Ich baue gerade eine Webapp mit angular2 und Typoskript. Ich habe versucht, index.ts so in meinem Code zu verwenden, habe ich einfachindex.js nicht was index.ts tut

import {LayoutComponent} from '../layout'; 

verwenden könnte Aber wenn ich transpile, wird die JavaScript-Engine suchen nicht nach index.js aber für ./layout so funktioniert es nicht.

Gibt es eine Konfiguration für den Typescript-Transpiler, etwas, das ich mit Systemjs konfigurieren oder einen anderen Loader wie Webpack verwenden soll?

Antwort

3

Ich habe die Ursache dafür gefunden. Typescript verwendet die hier erklärte Modulauflösung von nodejs: http://www.typescriptlang.org/docs/handbook/module-resolution.html

Aber systemjs verwendet keine nodejs-Auflösung. Also muss ich ./layout/index verwenden, um mit der Systemjs-Modulauflösung kompatibel zu sein, oder einen Karteneintrag für jedes Modul verwenden. Aber commonjs benutzt die Auflösung von nodejs, also werde ich nach commonjs umwandeln und webpack benutzen.

-1

Ja, die systemjs konfiguriert werden muss:

Sie so etwas in Ihrer Datei index.html haben sollte:

System.config({ 
    packages: { 
     src: { 
     format: 'register', 
     defaultExtension: 'js' 
     } 
    } 
    }); 
    System.import('src/dist/boot') --- your path to root file 
     .then(null, console.error.bind(console)); 

Auf Angular2 docs Seite findet man eine five minutes quick start tutorial finden, folgen das und danach kannst du deine App so anpassen, wie du willst: https://angular.io/guide/quickstart

+1

Ich habe bereits den Schnellstart gefolgt und meine index.html enthält genau den gleichen Code. Meine App funktioniert, wenn ich '' ../ layout/index' benutze. Aber ich möchte die volle Leistung von 'index.ts' nutzen können, indem ich' '../ layout'' verwende. –

+1

Ah, tut mir leid Ich habe die Frage falsch gelesen :) – tibbus

+1

nicht was der Benutzer fragt – Luka