Niestety jeżeli używamy async DOMContentLoaded nam nie zadziała.
<script type="text/javascript" src="./index.6da4.js" async>
Trochę mi zajęło zanim odkryłem ten problem. Lokalnie wszystko działało bo w webpaku w wersji developerskiej nie używam pluginu który dodaje async do script. Dopiero wersja produkcyjna posiada tą zmianę.
document.addEventListener("DOMContentLoaded", function() {
const contact = new FormValidate('form');
contact.init();
});
Przeszukanie sieci doprowadziło mnie do tego rozwiązania, działa nawet w IE9.
document.addEventListener('readystatechange', () => {
if (document.readyState == "complete") {
const contact = new FormValidate('form');
contact.init();
}
});