Versioni ECMAScript in Node JS
Node.js è costruito su versioni moderne di V8. Mantenendo l’aggiornamento con le ultime versioni di questo motore, ci assicuriamo che le nuove funzionalità della specifica JavaScript ECMA-262 vengano fornite agli sviluppatori di Node.js in modo tempestivo, oltre a miglioramenti continui delle prestazioni e della stabilità .
Tutte le funzionalitĂ di ECMAScript 2015 (ES6) sono divise in tre gruppi per funzionalitĂ consegnate, in fase di sviluppo e in corso:
- Tutte le funzionalitĂ consegnate, considerate stabili da V8, sono attivate per impostazione predefinita su Node.js e NON richiedono alcun tipo di flag runtime.
- Le funzionalitĂ in fase di sviluppo, che sono funzionalitĂ quasi completate e non considerate stabili dal team V8, richiedono un flag runtime:
--harmony
. - Le funzionalità in corso possono essere attivate singolarmente dal rispettivo flag harmony, anche se ciò è fortemente sconsigliato a meno che non sia per scopi di test. Nota: questi flag sono esposti da V8 e potrebbero cambiare senza preavviso di deprecazione.
Quali funzionalitĂ sono attivate di default in ciascuna versione di Node.js?
Il sito web node.green fornisce un’ottima panoramica delle funzionalità di ECMAScript supportate in varie versioni di Node.js, basato sulla tabella di compatibilità di kangax.
Quali funzionalitĂ sono in corso?
Nuove funzionalità vengono costantemente aggiunte al motore V8. In generale, aspettati che queste siano incluse in una futura versione di Node.js, anche se il tempismo è sconosciuto.
Puoi elencare tutte le funzionalità in corso disponibili in ogni versione di Node.js cercando l’argomento --v8-options
. Si noti che queste sono funzionalitĂ incomplete e potenzialmente non funzionanti di V8, quindi usale a tuo rischio:
node --v8-options | grep "in progress"
Ho configurato la mia infrastruttura per sfruttare il flag --harmony. Dovrei rimuoverlo?
Il comportamento attuale del flag --harmony
su Node.js è quello di abilitare solo le funzionalità in fase di sviluppo. Dopo tutto, ora è un sinonimo di --es_staging
. Come accennato in precedenza, queste sono funzionalitĂ completate che non sono state considerate stabili ancora. Se vuoi giocare in sicurezza, specialmente in ambienti di produzione, considera di rimuovere questo flag runtime fino a quando non verrĂ attivato per impostazione predefinita su V8 e, di conseguenza, su Node.js. Se lo mantieni abilitato, devi essere preparato per ulteriori aggiornamenti di Node.js che potrebbero interrompere il tuo codice se V8 cambia la semantica per seguire piĂą da vicino lo standard.
Come posso scoprire quale versione di V8 è inclusa in una particolare versione di Node.js?
Node.js fornisce un modo semplice per elencare tutte le dipendenze e le rispettive versioni che sono incluse in un binario specifico attraverso l’oggetto globale process
. Nel caso del motore V8, digita quanto segue nel tuo terminale per recuperare la sua versione:
node -p process.versions.v8