Apologies if this is off-topic, just a heads up to folks who might run into the same trouble.
Bowser 2.6.0 added an ESM “module” entrypoint to its config.json, and webpack prefers that to “main”, which means the CJS style requires in detectDevice are busted for webpacked applications.
Finding the trouble was more pain than I expected, so I thought I’d leave a note here. I’ve filed an issue upstream at https://github.com/lancedikson/bowser/issues/355