Nuove modalità di rilevazione del runtime JavaScript su server
![A computer screen with code detecting different JavaScript runtimes such as Node.js, Bun, and Deno.](/images/00061a9d49463bea_hu344f3f8e23df59cd8984350d8bfbe95a_3162696_4dadccecdafa856c37d151d98b57392f.webp)
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.