MapConductor React SDK er komið í 0.2.0. 21 pakki á npm, allir undir Apache-2.0.
Aðeins @mapconductor/react-for-openlayers er á 0.2.1; ástæðan kemur í lokin.
Hvað breyttist
- Allir pakkar fengu sömu útgáfu. Innri
@mapconductor/*viðfangasvið voru færð um leið, svo óviljandi blanda af útgáfum kemur ekki upp. @mapconductor/react-geojson-layervar endurnefndur@mapconductor/react-geojson. Aðeins pakkaheitið breyttist; API-in —GeoJSONLayer,GeoJSONLayerState,GeoJSONParserog félagar — eru óbreytt. Gamli pakkinn stendur áfram á npm í 0.1.3 en fær engar frekari uppfærslur.- Fjórir pakkar komu út í fyrsta sinn:
react-for-arcgis,react-for-mappls,react-geojsonogreact-kml. react-for-mapkitinniheldur loksins kóða. Útgáfa 0.1.3 hafði aðeins LICENSE og README. Hann hafði fallið út af smíðalistanum, svofiles: ["dist"]passaði við ekki neitt. Notirðu 0.1.3 skaltu uppfæra.- Leyfisauðkennið var lagfært í
Apache-2.0. Fram að því stóð þarApache2, sem er ógilt SPDX-gildi, og verkfæri töldu leyfið óþekkjanlegt.
Viðföng korta-SDK-anna voru uppfærð í það nýjasta innan uppgefins sviðs. Aðeins tvennt hreyfðist í raun: maplibre-gl (6.3.0 → 6.4.0) og @turf/turf (7.3.5 → 7.4.0); annað var þegar á nýjustu útgáfu.
Pakkarnir og korta-SDK hvers þeirra
Þrír þjónustuaðilar bera ekkert korta-SDK sem viðfang, af því SDK-in eru ekki gefin út á npm. HERE, Apple MapKit JS og Longdo hlaðast á keyrslutíma frá CDN framleiðandans, svo útgáfan sem raunverulega keyrir er sú sem framleiðandinn ber fram.
Aðeins react-for-tomtom heldur maplibre-gl á 5.x. @tomtom-org/maps-sdk reiðir sig á maplibre-gl@^5.24.0, og að fara í 6.x setti tvö eintök af MapLibre inn og léti TomTom-SDK-ið fá kortahlut sem það gerir ekki ráð fyrir.
ESM, CommonJS og teiknun á þjóni
Þessir pakkar gera ráð fyrir pakkara. Í Vite, webpack, Next.js og Metro leysast þeir rétt, og fyrir hvern þjónustuaðila var teiknun staðfest í raunverulegum vafra fyrir útgáfu.
Öðru máli gegnir þegar leysarinn í Node sjálfum les þá beint — bert node, teiknun á þjóni sem fer ekki gegnum pakkara, node-umhverfi Vitest og þess háttar. Ástæðan er sú að undirliggjandi korta-SDK eru vafrasöfn. Taflan hér að neðan er mæld með því að flytja útgefnu pakkana raunverulega inn í tómt verkefni.
| Pakki | import | require() | Ástæða |
|---|---|---|---|
react-for-arcgis | no | no | @arcgis/core/views/MapView imports .css, which Node cannot load. Any map needs MapView, so this cannot be worked around from our side. |
react-for-leaflet | no | no | leaflet touches window while the module is evaluated. |
react-for-azuremaps | no | no | azure-maps-control touches window while the module is evaluated. |
react-for-tomtom | no | no | Reads maplibre-gl/package.json, which Node will only load with an import attribute. |
react-for-mappls | no | yes | mappls-web-maps is CommonJS, so its named exports cannot be statically analysed by the ESM loader. |
react-for-maplibre | yes | no | maplibre-gl v6 is ESM-only and declares no CommonJS entry. |
react-for-maptiler | yes | no | Same as react-for-maplibre. |
Hinir 14 pakkarnir hlaðast báðum megin. Niðurstaðan er sú sama og í 0.1.3, svo þetta er ekkert nýtt í 0.2.0.
Tvennt er gott að hafa í huga.
- Við teiknun á þjóni skaltu flytja þjónustuaðilann inn seinkað í vafranum. Sé þjónustuaðili sem aðeins virkar í vafra fluttur inn kyrrstætt á efsta þrepi brotnar þjónsteiknun sem fer ekki gegnum pakkara. Opinbera vefsýnidæmið notar
lazy(() => import('./providers/...')), og þess vegna gengur SSR-smíðin í Vite upp. react-for-maplibre,react-for-maptilerogreact-for-tomtomlýsa CommonJS-inngangi sem virkar ekki í raun. Ástæðan er sú aðmaplibre-glv6 hætti að styðja CommonJS. Notaðu þessa þrjá sem ESM. Að fjarlægjarequireúrexportsbíður seinni útgáfu.
Það eina sem var okkur sjálfum að kenna
Að react-for-openlayers hlóðst ekki í Node-ESM átti ekkert skylt við OpenLayers. Okkar eigin kóði flutti inn ol/proj án skráarendingar, og Node hafnar því sem innflutningi á möppu. Pakkarar hleypa því í gegn, svo það sást ekki. Lagfært í 0.2.1. Breytingin er þessi eina lína, og hegðunin gegnum pakkara er óbreytt.
Uppsetning
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react @mapconductor/react-for-maplibre
Hver pakki á sína eigin geymslu. Sjá github.com/MapConductor.