2016-04-10 10 views
0

Wenn ich die App aus dem Stammverzeichnis meines Servers laden, funktioniert die App. Dies ist in der Praxis aufgrund der hübschen URLs, die unsere Anwendung verwendet, nicht möglich. Zum Beispiel http://www.website.com/modules/worker/person/1/1/1 Laden einer Seite mit den vorherigen URL-Ergebnissen in system.js suchen in dem Ordner /modules/worker/person/1/1 eher als ein Ordner basierend auf "/".Typescript-App nicht im Ordner node_modules suchen

Die Lösung besteht darin, baseURL:"/" so zu setzen, dass die Module basierend auf dem Stammverzeichnis geladen werden.

Das Problem mit dieser Lösung besteht darin, dass Knotenmodule nicht ordnungsgemäß geladen werden, statt in das Verzeichnis node_modules zu schauen, sucht system.js im Stammverzeichnis. system.js sieht in /angular2/http.js statt /node_modules/angular2/http.js

Wenn ich von "Knoten" -Modul Compilierung auf "Classic" wechseln, ist das Ergebnis das gleiche.

Irgendwelche Gedanken zum weiteren Vorgehen?

+1

Ich löste das Problem, indem ich die Einstellung "Pfade" in System.config für die erforderlichen Dateien angegeben. – ktamlyn

+1

Hallo @ktamlyn könnten Sie diese 'System.config' hier als Antwort hinzufügen. Es könnte für die nächsten Entwickler hilfreich sein. – ssuperczynski

+0

Einverstanden, musste warten, um die Frage selbst durch Stackoverflow-Regeln zu beantworten. – ktamlyn

Antwort

1

Hier war meine Lösung für dieses Problem, die Pfade Eigenschaft im Objekt system.config mit:

System.config({ 
     defaultJSExtensions: true, 
     baseURL: "/", 
     paths: { 
      'modules/worker/*': '/modules/worker/*', 
      'angular2/*': '/node_modules/angular2/*', 
      'rxjs/*': '/node_modules/rxjs/*', 
     }, 
     packages: { 
      modules : { 
       worker: { 
        format: 'register', 
        defaultExtension: 'js' 
       } 
      } 
     } 
    }); 
    System.import('modules/worker/main') 
      .then(null, console.error.bind(console)); 

Für jeden Vermögenswert, der außerhalb main.js (alle externen Bibliotheken) geladen wurde ich darauf musste direkt zu ihnen in der Pfade Config-Eigenschaft. Diese Liste würde sich abhängig von den Abhängigkeiten Ihrer veröffentlichten Typescript-Klassen unterscheiden.

Verwandte Themen