2015-07-28 12 views
11

Ich bekomme mehr in System.js und JSPM, wo ich zu dem Punkt gekommen bin, wo ich meinen TypeScript-Quellcode in ein JavaScript-Bundle bündeln möchte.JSPM-Bundle mit TypeScript transpiler

Jetzt ist mein erzeugt JavaScript-Code mit etwas bündeln, wie ich kann: jspm bundle some/source/path someDestFile.js

aber dann muss ich zuerst in JavaScript, um alle meine Typoskript Präbuildereignis und dann Bündel, fand mich mit all der kompilierte links (und getrennte JS-Dateien. Das ist alles andere als ideal!

Ich ging durch die jspm docs here, fand aber keine Lösung.

Nur um klar zu sein, ich möchte nicht TypScript in meinem Browser zu kompilieren, eher ein vorkompiliertes Paket von solidem JavaScript.

Wie mache ich das?

P.S. Ich habe die TypScript-Transspiler-Installation wie gesehen here

Antwort

9

Sie können es mit JSPM Builder tun. Sie können alle Typoskript Dateien bündeln und bundlesfx zu einer einzigen Datei, konfigurierend jspm.conf.js wie folgt aus:

System.config({ 
    defaultJSExtensions: true, 
    transpiler: "typescript", 
    typescriptOptions: { 
     "module": "amd", 
     "experimentalDecorators": true 
    }, 
    ... 
    packages: { 
     "app": { 
      "main": "index", 
      "defaultExtension": "ts", 
      "meta": { 
       "*.ts": { 
        "loader": "ts" 
       } 
      } 
     } 
}); 

und dann laufen:

jspm bundle-sfx src/index dist/app.js 

Sie voll workign Beispiel in hier sehen können: https://github.com/b091/ts-skeleton/

+0

Dies scheint zu kompilieren. aber meine Importe funktionieren nicht. Wie würde ich beispielsweise Winkel 1.x importieren? Ich habe '' import * als eckig aus 'angular''' und '' import angular = require (' angular ') '' versucht. Beides hat nicht funktioniert. – Nicky

+1

Ich habe mein '' /// '' vergessen, es funktioniert jetzt ausgezeichnet! Danke für das sehr tolle Beispielprojekt, es hat einiges klarer gemacht! – Nicky

1

Ich glaube, die Frage wird veraltet. Ich habe das gerade mit JSPM 0.17.0-beta.31 mit plugin-typescript (https://github.com/frankwallis/plugin-typescript) versucht, und "jspm bundle" hat das TypeScript tatsächlich für mich vorübersetzt.

"jspm Bundle-SFX" ist jetzt "Jspm Build". Da die ursprünglich akzeptierte Antwort den Wechsel zu bundle-sfx (build) vorgeschlagen hat, was jetzt nicht notwendig sein sollte, möchte ich die Entscheidung, ob Bundle oder Build verwendet wird, klarstellen. Ich finde das Bundle für die Beschleunigung der Entwicklung nützlicher, während build eine kleinere Datei mit mehr Optimierungen erzeugen kann. Sie sollten also das Bundle während der Entwicklung und das Build bei der Veröffentlichung verwenden. Beachten Sie, dass Code, der Ihre Bibliothek importiert, nicht in der Lage ist, seine Abhängigkeiten zu teilen, wenn Sie Build auf einer Bibliothek verwenden.