
Often, the JS package documentations make you write piece of code like :
<script src='https://some.cdn/my/lib.js'>
with this piece of code, the browser will wait the script is loading before continue to load the DOM. This is a performance issue and a risk especially if the js library is not hosted by your server : which is really not recommended.
To avoid any blocking issues, async and defer manage the script loading asynchronously. The difference those 2 attributes is that defer will warranty that js will be loaded in the order they are found on the DOM.
Also, the script tag with module type use defer by default. It is possible to overwrite it with async attrubute.
Conclusion
Don’t forget to load your js asynchronously
<script src='https://some.cdn/my/lib.js' async>