2016-04-28 3 views
3

ich systemJS bin mit meinen Pakete zu verwalten, so habe ich diese Zeilen meine systemjs der Konfigurationsdatei hinzugefügt:Angular2: NG2-Datei-Upload: kann es nicht richtig SystemJS mit laden

{ 
    map: { 'ng2-file-upload': 'node_modules/ng2-file-upload' }, 
    packages: { 
    'ng2-file-upload': { 
     main: './ng2-file-upload/ng2-file-upload.js', // also tried with './ng2-file-upload.js' 
     defaultExtension: 'js' 
    }, 
    } 
} 

ich importiere NG2 -file-upload über .

Das Importieren führt jedoch dazu, dass meine Anwendung "crackt": mein Typscript-Compiler scheint gut zu funktionieren (ich sehe Logs aufgrund anderen Codes), aber die Änderungen werden nicht mehr übertragen, so dass ich nichts mehr ausführen kann. Ich habe keine Fehlerprotokolle in Verbindung mit ng2-Datei-Upload (außer einer Menge von Duplicate identifiers).

Irgendeine Idee?

EDIT: ich dieses Paket von node_modules in einen Ordner extrahiert haben, die in der Nähe meiner App ist (vendor) und ich habe einen relativen Pfad verwendet zu importieren FileDrop und FileUploader aber systemjs gescheitert Importe:

EDIT 2: Hier sind einige Details. Meine Anwendung ist unter einer public, die 2 Unterordner enthält: src und build. Ich schreibe ts Code innerhalb src (das ist offensichtlich) und mein TSC speichert transpilierte Dateien zu build. Im Moment bündle ich meine Dateien nicht, also ist die Hierarchie innerhalb build die gleiche wie die src.

Aber etwas seltsam geschieht nur mit NG2-Datei-Upload-: während transpiling, tsc einen node_modules/ng2-file-upload Ordner in build hinzuzufügen. Hier sind die Bäume:

public 
|-- build 
| |-- core 
| |-- modules 
| |-- styles 
| |-- node_modules 
| | |-- ng2-file-upload 
+-- src 
    |-- core 
    |-- modules 
    |-- styes 

Ich weiß nicht, warum TSC transpile dieses Paket. Natürlich sind node_modules in meiner tsconfig.ts ausgeschlossen.

Antwort

0

ich diese Konfiguration versuchen würde:

{ 
    map: { 'ng2-file-upload': 'node_modules/ng2-file-upload' }, 
    packages: { 
    'ng2-file-upload': { 
     defaultExtension: 'js' 
    }, 
    (...) 
    } 
} 

und importieren Sie es auf diese Weise:

import { FileDrop, FileUploader } from 'ng2-file-upload/ng2-file-upload'; 
+0

ich dies habe auch versucht , aber es funktioniert nicht: /. Ich werde Details zu meiner Frage hinzufügen. –

+0

Welche Anfrage wird von SystemJS ausgeführt, um die Bibliothek zu laden (und fehlschlägt)? –

+0

Wenn ich SystemJS anrufe, das Paket zu importieren, indem ich 'import ...' schreibe, scheint es, dass meine Änderungen nicht korrekt übertragen werden und meine 'import' Anweisung nicht ausgeführt wird. || (Vielleicht gibt es einen Konflikt zwischen SystemJS und TSC? Wegen einer schlechten Konfiguration?) –

5

hier ist mein systemjs.config, das funktioniert:

 var map = { 
    'app': 'app', // 'dist', 
    'rxjs': 'node_modules/rxjs', 
    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api', 
    '@angular': 'node_modules/@angular', 
    'ng2-file-upload': 'node_modules/ng2-file-upload' 
}; 


var packages = { 
    'app': { main: 'main.js', defaultExtension: 'js' }, 
    'rxjs': { defaultExtension: 'js' }, 
    'angular2-in-memory-web-api': { defaultExtension: 'js' }, 
    'ng2-file-upload': { main: 'ng2-file-upload.js', defaultExtension: 'js' } 
}; 
Verwandte Themen