Nuove modalità di rilevazione del runtime JavaScript su server
Node.js ha rivoluzionato l’esecuzione di JavaScript sul server. Oggi esistono molti altri runtime come Bun e LLRT. Questi runtime spesso adottano Web Platform API per unificare il codice tra browser e server, ma hanno anche API specifiche. Per codice che dipende da queste, è cruciale sapere su quale runtime si sta eseguendo. Il metodo corretto utilizza navigator.userAgent. Questo restituisce una stringa con il runtime e la sua versione, come concordato dal WinterCG group. Ecco alcuni esempi: Node.js/22, Bun/1.0.28, Cloudflare-Workers, Deno/1.40.0. Metodi meno affidabili includono controlli di esistenza su oggetti globali o importazioni tentate di moduli specifici come fs per Node.js, che possono generare errori o comportamenti inaspettati.