Mapbox Typescript

Ich habe es geschafft, Leaflet mit Angular 2 und Webpack zum Laufen zu bringen.

Anhänger für 2 Packungsbeilagen

Ich kann die in "browser.d.ts" konfigurierten Eingaben sehen:

/// <reference path="browser\ambient\leaflet\leaflet.d.ts" />

webpack.config.js definiert einen Einstiegspunkt:

...
entry: {
    'polyfills': './src/polyfills.ts',
    'libs': './src/libs.ts',
    'main': './src/main.ts'
},
...

Die "libs.ts" enthält den Import des Leaflet-Moduls:

import 'leaflet';

Ich benutze Atom als Code-Editor. Es werden nun alle Leaflet-Klassen und -Methoden erkannt. In Angular 2 kann ich jetzt so etwas machen:

import {Map, TileLayer} from 'leaflet';
...
this.baseMaps = {
    StreetMap: new TileLayer('mapbox.streets')
};

Hier fangen meine Probleme an. Ich versuche mapbox.js zu benutzen. Ich habe die Bibliothek mapbox.js installiert und Folgendes eingegeben:

npm install mapbox.js --save
typings install mapbox --save

Hier stecke ich fest. Für das Leben von mir kann ich nicht herausfinden, wie man das macht, was Leaflet geschafft hat.

import 'mapbox';

Funktioniert nicht.

ERROR in ./src/libs.ts
Module not found: Error: Cannot resolve module 'mapbox' in C:\Develop\angular2-webpack-starter\src
 @ ./src/libs.ts 3:0-17

Ich kann sehen, "browser.d.ts" hat Folgendes:

/// <reference path="browser\ambient\leaflet\leaflet.d.ts" />
/// <reference path="browser\ambient\mapbox\mapbox.d.ts" />

Ich dachte, vielleicht funktioniert Mapbox nur, weil es die Leaflet-Bibliothek erweitert?

Es scheint, dass ich im Grunde so etwas tun kann, was der Standard-Javascript-Weg ist:

this.baseMaps = {
    StreetMap: L.mapbox.tileLayer('mapbox.streets')
};

Aber nicht das:

this.baseMaps = {
    StreetMap: new TileLayer('mapbox.streets')
};

Das funktioniert natürlich auch nicht:

import {Map, TileLayer} from 'mapbox';

Was mache ich falsch

Antworten auf die Frage(4)

Ihre Antwort auf die Frage