← Back to the list of blog posts
Leaflet 1.9 released
The v1.9 release is setting the stage for the first major version bump of Leaflet since 2016! A lot has changed since then, and it’s time for Leaflet to grow together with the web platform.
After this release, we are branching off the 1.x code and putting it in maintenance mode — reserving potential 1.x releases only for critical bugfixes. Although version 2.0 is still far away and will take some time to take shape, we plan to make the following changes:
- Dropping support for Internet Explorer. This has been a long time coming, but now that Internet Explorer is officially end-of-life, it’s time to say goodbye. Going forward, Leaflet will move to an evergreen strategy that targets browsers like Firefox, Chrome, Edge and Safari.
- Embracing modern JavaScript. To maintain backwards compatibility, Leaflet is written entirely in ES5, a version of JavaScript supported by legacy browsers. So we have not been able to make use of many great JavaScript features (e.g. standardized classes, instead having to rely on our own implementation). By adopting a more modern version of the ECMAScript standard, we can start working towards aligning Leaflet with what is expected from a modern JavaScript library.
- Standardized modules. When we released Leaflet v1, the landscape in the JavaScript world was very different and full of competing module standards such as CommonJS, AMD and UMD. Today, ECMAScript modules have become the clear way forward to unite the JavaScript ecosystem under one banner. Moving forward, Leaflet will only be distributed in a single standardized module system, greatly reducing complexity of our distributed code.
- Removing the Leaflet global.
As a developer using Leaflet, the capital letter
L
is probably intimately familiar to you. This is the Leaflet global where all of Leaflet’s functionality lives. To allow compiler tooling to better eliminate dead-code through a process called tree-shaking, we are removing this global variable. To preserve backwards compatibility with older plugins, we will provide a shim that can be imported manually that will restore this functionality.
Check out the full changelog here.
Edit: v1.9.1 patch has been released to address compatibility with Leaflet.markercluster plugin.
Edit: v1.9.2 patch has been released which reverts ESM support because of numerous compatibility issues with plugins.
Edit: v1.9.3 patch has been released which resolves some bug fixes and accessibility issues.
Edit: v1.9.4 patch has been released which resolves some bug fixes.
Cheers,
The Leaflet team.