-
-
Notifications
You must be signed in to change notification settings - Fork 3k
OpenLayers v5.x
OpenLayers v5.x will be a set of ES modules, similar to the v4.x ol package. The difference is that from v5.0.0 on, the sources will be authored and maintained as ES modules. OpenLayers will no longer depend on and be compatible with closure-util.
Users of the v4.x ol package
Class modules will have CamelCase names, instead of the current lowercase names. This means that imports like
import Map from 'ol/map';
will change to
import Map from 'ol/Map';
We will be providing a code transform to automate this change.
In addition to that, we will be adding named exports for modules like ol/extent
or ol/proj
, which will allow users to import less and get smaller build sizes. The default exports of v4.x will still work though.
The full build will still be provided, but we encourage everyone to switch to the ol package.
Users of closure-util
If you build your application together with OpenLayers using closure-util, we recommend to upgrade your application to use ES modules instead of goog.require
and goog.provide
.
Existing code like
goog.provide('MyApp');
goog.require('ol.Map');
MyApp.createMap = function() {
return new ol.Map({});
};
will have to be changed to
import Map from 'ol/map';
export function createMap() {
return new Map({});
}
Note that ES modules, other than goog.provide
and goog.require
, do not assume and use global namespacing.
For the build environment, you can use anything that works with ES modules. Some examples (including some that use the Closure Compiler) are linked from the ol package README.
As an interim solution, when working with webpack, the closure-loader may help to make OpenLayers 5.x work with existing closure-util based applications.
We recommend switching to a webpack based setup and import only what's needed from the ol package. See the ol package README for examples of how to setup and use OpenLayers like that for your application.
As an interim solution, you can use the full build (ol.js
or ol-debug.js
) instead.
TBD