2016-07-27 6 views
6

Ich benutze SystemJS Loader (mit commonJS-Modulen, aber das sollte nicht wichtig sein), meist zum direkten Zugriff auf Komponenten unter node_modules.Möglichkeit, einen relativen Pfad in einer SystemJS Loader-Umgebung einem absoluten Pfad zuzuordnen

Jetzt zur Laufzeit ist es möglich, den absoluten Pfad in der aktuellen Umgebung von einem relativen zu suchen?

I.e. Wenn ich require('./myComponent') mache, wird es http://localhost:3000/app/myComponent.js holen, aber wenn diese Komponente über npm install installiert wird (also unter node_modules resident ist), lädt SystemJS http://localhost:3000/node_modules/dist/myComponent.js korrekt. Gibt es eine Möglichkeit, diesen absoluten Weg von einem relativen Weg aus zu suchen?

I.e. etwas wie var absPath = SystemJS.lookup('./myComponent')?

Antwort

4

Es normalize genannt, und es gibt ein Versprechen, die absolute URL aufgelöst, wie durch die aktuelle SystemJS Konfiguration definiert:

SystemJS.normalize('./myComponent').then(function(url) { 

}); 

ein Versprechen Rückkehr bedeutet, dass es keine Garantie dafür gibt, dass es jedes Netzwerk nicht durchführen wird Laden - wenn beispielsweise Plugins oder benutzerdefinierte Loader beteiligt sind, müssen möglicherweise zuerst Plugins geladen werden.

Es braucht auch optional zweites Argument - Name des übergeordneten Moduls, weil man in der Konfiguration paketspezifische Zuordnungen definieren kann.

Verwandte Themen