2016-08-04 60 views
0

So habe ich versucht, ein Knotenmodul (immutablejs) in meine Typoskript-Datei zu importieren:Import Knotenmodul mit systemJs in Typoskript Datei

/// <reference path="../node_modules/immutable/dist/immutable.d.ts" /> 
import { Map } from 'immutable'; 
var myMap = Map(); 

Hier sind meine Script-Tags in meinem index.html:

<script src="node_modules/systemjs/dist/system.js"></script> 
<script src="node_modules/typescript/lib/typescript.js"></script> 
<script> 
    System.config({ 
     transpiler: 'typescript', 
     packages: { 
      src: { 
       defaultExtension: 'ts' 
      } 
     } 
    }); 
    System 
    .import('src/main.ts') 
    .then(null, console.error.bind(console)); 
</script> 

Während Intellisense in VS-Code arbeiten, mein Browser sagt mir, es kann nicht unveränderlich finden: system.src.js: 1057 GET http://localhost:3000/immutable/ 404 (nicht gefunden)

Importieren einer se lf-geschrieben Typoskript-Modul mit relativen Pfad gerade ausgearbeitet ..

Was mache ich falsch?

Antwort

2

Mit den richtigen Typdefinitionen für den Typescript-Compiler konfiguriert systemjs nicht, wo der echte JavaScript-Code für immutablejs geladen werden soll.

Wenn Sie systemjs verwenden, ist es an der Reihe, systemjs entsprechend zu konfigurieren, damit es weiß, woher die Bibliotheken geladen werden sollen. Wenn Sie dies nicht tun, wird es versuchen, das importierte Modul als Datei von dem Server zu laden, der denselben Namen wie Ihr Import hat. Sehen Sie diese Antwort für genau das gleiche Problem:

How to configure SystemJs for ImmutableJs to work in Angular 2 project

Für weitere Informationen darüber, wie Sie systemjs konfigurieren können, finden Sie die hier docs: https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#map

Sie auch den Referenzpfad für die d.ts Datei weglassen Wenn Ihr tsconfig so eingerichtet ist, dass es die node_modules automatisch oder mithilfe eines Tools wie typings durchsucht, um Definitionen für Bibliotheken zu installieren, die keine Typisierung mit ihrem Modul bereitstellen. (Siehe hier: https://github.com/typings/typings - aber dies sollte nicht für unveränderlichej benötigt werden).

+0

Vielen Dank! system.config.js war das Problem! – r4ph43l