1.9 KiB
parent |
---|
Architecture decisions |
015: Hotwire & Internet Explorer
Initially we intended to use Hotwire (Stimulus and Turbo). Stimulus as our "minimal javascript framework", Turbo to provide an "SPA-like" experience. However, despite now being deprecated by Microsoft, a significant proportion of our users are still using Internet Explorer 10/11 to access the service (~30% based on 2021 server logs) and so we needed to support Internet Explorer >= 10 also for the time being. This presented a problem as neither Stimulus nor Turbo support Internet Explorer and upstream have indicated there is no interest in adding support.
To address this we first attempted to transpile the Stimulus and Turbo libraries from ES6 down to ES5 with Babel and add any required polyfills.
For Stimulus we were able to do this and are continuing to use it. This is achieved by:
- Adding the @Stimulus/Polyfills package to our package.json
- Adding the StimulusJS NPM package path to our webpack config rules to be transpiled
- Adding the required Babel plugins to our Babel config
For Turbo the same approach was attempted but proved unsuccessful. As a result we decided to remove Turbo until we can drop support for Internet Explorer. This does have a perceptible impact on UX/speed but provides the most browser compatibility.