Sono riuscito a far funzionare Leaflet con Angular 2 e Webpack seguendo questo progetto.Mapbox Typescript
posso vedere le tipizzazioni configurate in "browser.d.ts":
/// <reference path="browser\ambient\leaflet\leaflet.d.ts" />
webpack.config.js definisce un punto di ingresso:
...
entry: {
'polyfills': './src/polyfills.ts',
'libs': './src/libs.ts',
'main': './src/main.ts'
},
...
Il " libs.ts "contiene l'importazione del modulo Leaflet:
import 'leaflet';
Sto usando Atom come editor di codice. Ora riconosce tutte le classi e i metodi di Leaflet. Ora posso fare cose come questa in Angular 2:
import {Map, TileLayer} from 'leaflet';
...
this.baseMaps = {
StreetMap: new TileLayer('mapbox.streets')
};
Qui è dove iniziano i miei problemi. Sto cercando di usare mapbox.js. Quello che ho fatto è stato installare la libreria mapbox.js e le digitazioni:
npm install mapbox.js --save
typings install mapbox --save
Questo è il punto in cui sono bloccato. Per la vita di me non riesco a capire come fare ciò che Leaflet è riuscito a fare.
import 'mapbox';
Non funziona.
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
posso vedere "browser.d.ts" ha la seguente:
/// <reference path="browser\ambient\leaflet\leaflet.d.ts" />
/// <reference path="browser\ambient\mapbox\mapbox.d.ts" />
Ho pensato che forse Mapbox sarà solo lavorare, perché si estende la libreria Volantino?
Sembra che posso fondamentalmente fare qualcosa di simile, che è lo standard javascript modo:
this.baseMaps = {
StreetMap: L.mapbox.tileLayer('mapbox.streets')
};
Ma non questa:
this.baseMaps = {
StreetMap: new TileLayer('mapbox.streets')
};
Questo, ovviamente, non funziona neanche:
import {Map, TileLayer} from 'mapbox';
Cosa sto sbagliando?
Contrassegnerò questa soluzione come accettata, perché funziona. Tuttavia, potrei semplicemente aggiungere che non risponde completamente alla parte della mia domanda riguardante il file dattilografia (mapbox.d.ts) e quindi non fornisce tipi forti. –
Signore, non lavoro alla mia fine. Si prega di suggerire qualsiasi altro. Stiamo usando la versione beta di Angular i.e 1.5.7 –