2016-12-15 1 views
2

Eine einfache Straßensperre. Ich muss Leaflet und das Leaflet-Draw-Plugin in einigen meiner Dienste verwenden.So importieren Sie ein Modul, das ein weiteres auf dem gleichen Namespace erweitert

Ich weiß nicht, wie das komplette Modul (Kern und Plugin) importieren

// the core 
import * as L from 'leaflet'; 
// extension 
import 'leaflet-draw'; 

export class LeafletConsumerService {} 

Ich habe eine Lösung, die ich viel nicht gefällt. Ich lade die Bibliotheken von Fest sie verbindenden in index.html und der Verbraucher hat lediglich einen Hinweis auf die Erklärung Typisierungen Dateien

/// <reference path="../typings/index.d.ts" /> 

export class LeafletConsumerService {} 

Gibt es keine andere Art und Weise kann ich dies tun? Gibt es eine Möglichkeit, eine Datei zu importieren, die nur einen Nebeneffekt auf ein bereits geladenes Modul verursachen sollte?

Antwort

1

Ok, eine schnelle und schmutzige Lösung. Diese Antwort funktioniert, wenn Sie Ihr Projekt von einem quickstart repo starten. system.config.extras.js Goto und erweitern Sie Ihre Konfiguration als solche:

System.config({ 
    map: { 
     'leaflet': 'npm:leaflet/dist/leaflet.js' 
    }, 
    packages: { 
     leaflet: { 
      defaultExtension: 'js' 
     }, 
    } 
}); 

dies bedeutet, dass wir jetzt Faltblatt als solche

import * as L from 'leaflet'; 

und fügen Sie unsere entsprechenden Erweiterungsdateien wie

import 'your-leaflet-extension'; 

importieren Denken Sie daran, die Typinformationen für Ihre Erweiterungen zu erweitern (durch eine Typisierungsdatei oder machen Sie Ihre eigenen)

Verwandte Themen