Masarykova univerzita

- přehled změn ve verzi 2.0

Nový munimap je tady!

Obsahuje kompletně přepracované vývojové prostředí, odstraňuje závislost na Google Closure a používá nové technologie jako Webpack, React, Redux aj.

Výměna a povýšení technologií

Původní verze munimapu byla postavena na technologii Google Closure, konkrétně na kompilátoru Closure Compiler a knihovně Closure Library, které byly dohromady provázané prostřednictvím technologie plovr. V posledních letech však byla viditelná tendence útlumu na vývoji plovru a jeho pomalé přizpůsobování novým verzím CC, CL a EcmaSriptu samotného. Z těchto důvodu jsme se rozhodli kompletně vyměnit vývojové prostředí munimapu směrem k modernímu EcmaScriptu 6+ a knihovnám jako je Webpack nebo React. Důležitým požadavkem byla také efektivní správa balíčku potřebných pro chod aplikace pomocí npm (Node Package Manager).

Kombinace knihoven Webpack a Babel umožnuje spouštět vývojové prostředí a buildovat výsledný kód za minimálního úsilí. Na vstupu tak může být nejnovější EcmaScript a pouhou konfigurací zmíněných knihoven je možné vytvořit výslednou aplikaci kompatibilní třeba i s prohlížečem Internet Explorer 11. Oproti Closure Compileru trvá kompilace kódu daleko méně času a společně s tzv. hot reloadem je pak vývoj velice efektivní. Odpadá tak nutnost využití technologií jako je Gulp nebo Grunt pro spouštění automatizovaných úloh. Typová kontrola je prováděna pomocí Typescript anotací Typescript Compileru.

Breaking Changes

Knihovna munimap

  • odebrána podpora pro Internet Explorer 11
  • globální objekt ol nyní obsahuje pouze explicitně exportované funkce a třídy
  • v určitých případech je třeba explicitně nastavit výšku a šířku target divu – souvisí s vykreslováním objektu ol/Map
  • změna id vrstev (ol/layer/Vector) - sjednocení na tvar s pomlčkami a v jednotném čísle
  • elementům ovládacích prvků (ol/control) byla odebrána id - nedochází tak ke konfliktům např. při umístění více map na stránku

Vývojové prostředí

  • Kód je rozdělen do ES modulů a využívá importy/exporty (odebrán goog.require, goog.provide a namespace munimap)
  • OpenLayers povýšeny na verzi 6.14.1, do munimapu importovány jako moduly (= odebrán legacy build OpenLayers)
  • Gulp a jeho tasky zabezpečující automatizaci jsou nahrazeny Webpackem a jeho pluginy