Confronto tra moduli in Javascript: ES e commonJS

di Morgan Pizzini, in HTML5, JavaScript,

È giunto il momento di tirare le fila su questa mini-serie che ha riguardato la creazione di moduli JavaScript: abbiamo visto come sia facile redistribuire e riorganizzare il nostro codice utilizzando poche semplici accortezze, le quali renderanno il nostro prodotto leggibile, organizzato e facilmente manutenibile.

Come anticipato nello script #369, i moduli in CommonJS sono stati il fulcro dei pacchetti Node.js. Tuttavia, questi hanno un problema: sono di natura sincroni, e sebbene per uno sviluppo backend questa sia una condizione ininfluente, per il mondo frontend è sempre consigliato utilizzare processi asincroni, che non blocchino, anche se per tempi minimi, l'interfaccia.

Gli ES Modules sono lo standard per la costruzione di moduli in JavaScript, ed essendo asincroni risolvono il problema principale della loro controparte. Sono supportati da Node 13 e, cosa molto importante, l'utilizzo di uno non preclude l'altro: possiamo utilizzare entrambe le tipologie all'interno dello stesso programma. In questo modo anche le librerie che non vengono più gestite, o quelle più complesse, la cui migrazione risulterebbe complicata, potranno comunque essere referenziate.

Oltre alla definizione, analizzata negli script delle settimane passate, e considerando che possono essere utilizzati contemporaneamente, troviamo che l'unica differenza tra i moduli CommonJS e ES Modules è nella modalità di inclusione. Mentre tutti gli ES Modules devono essere inclusi in testa al file, i moduli CommonJS possono invece essere inclusi quando se ne ha bisogno: possiamo aggiungere una referenza in cima al file o appena prima dell'utilizzo oppure includerli solo sotto una certa condizione, come mostrato in seguito.

if(doSum){
   const sum = require('./module.js');
   var x = sum(1);
}

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi